Pagini recente » Cod sursa (job #2323745) | Cod sursa (job #900874) | Cod sursa (job #4705) | Cod sursa (job #2553376) | Cod sursa (job #85919)
Cod sursa(job #85919)
#include <cstdio>
const int maxn = 1000001;
FILE *in = fopen("curcubeu.in","r"), *out = fopen("curcubeu.out","w");
int n, a, b, c;
inline int min(int x, int y)
{
return x < y ? x : y;
}
inline int max(int x, int y)
{
return x > y ? x : y;
}
int culori[maxn];
int nr[maxn]; // nr[i] = cate elemente de dupa elementul i au culoarea lui i
int main()
{
fscanf(in, "%d %d %d %d", &n, &a, &b, &c);
int t1, t2, t3;
for ( int i = 1; i < n; ++i )
{
t1 = (a * i) % n;
t2 = (b * i) % n;
t3 = (c * i) % n;
int k = max(t1, t2);
int q = min(t1, t2);
// for ( int j = min(t1, t2); j <= k; ++j )
culori[q] = t3;
nr[q] = k;
a = t1, b = t2, c = t3;
}
int j = 0;
for ( int i = 1; i < n; ++i )
if ( nr[i] )
{
for ( j = i; j <= nr[i]; ++j )
fprintf(out, "%d\n", culori[i]);
i = nr[i];
}
else if ( !culori[i] )
fprintf(out, "%d\n", 0);
return 0;
}