Pagini recente » Cod sursa (job #1867192) | Cod sursa (job #1683600) | Statistici Rusz Elisabeta (erzsike) | Cod sursa (job #1774464) | Cod sursa (job #227967)
Cod sursa(job #227967)
#include <stdio.h>
#include <math.h>
#define MAXN 1000001
long n, i, j, d, A[MAXN], B[MAXN], C[MAXN], v[MAXN], S[MAXN];
void gas() {
for (i = 2; i < n; ++i) {
A[i] = (A[i - 1] * i) % n;
B[i] = (B[i - 1] * i) % n;
C[i] = (C[i - 1] * i) % n;
}
}
long min(long a, long b) {
if (a < b) {
return a;
}
return b;
}
long max(long a,long b) {
if (a < b) {
return b;
}
return a;
}
int main() {
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
scanf("%ld %ld %ld %ld", &n, &A[1], &B[1], &C[1]);
gas();
for (i = n - 1; i > 0; --i) {
j = min(A[i], B[i]);
d = max(A[i], B[i]);
while (j <= d) {
if (v[j] == 0) {
S[j] = d + 1;
v[j++] = C[i];
} else {
j = S[j];
}
}
}
for (i = 1; i < n; ++i) {
printf("%ld\n", v[i]);
}
return 0;
}