Pagini recente » Cod sursa (job #210273) | Cod sursa (job #1256441) | Cod sursa (job #764877) | Cod sursa (job #1083270) | Cod sursa (job #371425)
Cod sursa(job #371425)
#include <cstdio>
#define FIN "curcubeu.in"
#define FOUT "curcubeu.out"
#define N 1000002
int n;
int a[N], b[N], c[N], color[N], next[N];
void swap(int p, int A[], int B[])
{
int aux;
aux = A[p];
A[p] = B[p];
B[p] = aux;
}
void read()
{
int i;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d%d%d%d", &n, &a[1], &b[1], &c[1]);
for (i = 2; i <= n; ++ i)
{
a[i] = ((long long) a[i - 1] * i) % n;
b[i] = ((long long) b[i - 1] * i) % n;
c[i] = ((long long) c[i - 1] * i) % n;
}
}
int main()
{
int i, j, aux;
read();
for (i = 1; i <= n; ++ i)
{
if (a[i] > b[i])
swap(i, a, b);
next[i] = i + 1;
}
for (i = n - 1; i; -- i)
for (j = a[i]; j <= b[i]; )
{
if (!color[j]) color[j] = c[i];
aux = j, j = next[j], next[aux] = b[i] + 1;
}
for (i = 1; i < n; ++ i)
printf("%d\n", color[i]);
//printf("\n");
}