Pagini recente » Cod sursa (job #2892549) | Cod sursa (job #2415639) | Cod sursa (job #3229779) | Cod sursa (job #2641583) | Cod sursa (job #2242638)
#include <cstdio>
#include <iostream>
using namespace std;
const int MAXN = 1e6;
int n, a[MAXN], b[MAXN], c[MAXN];
int col[MAXN], urm[MAXN];
int main() {
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
scanf("%i%i%i%i", &n, &a[1], &b[1], &c[1]);
for (int i = 2; i <= n - 1; ++ i) {
a[i] = (1LL * a[i - 1] * i) % n;
b[i] = (1LL * b[i - 1] * i) % n;
c[i] = (1LL * c[i - 1] * i) % n;
}
for (int i = n - 1; i; -- i) {
int st = min(a[i], b[i]);
int dr = max(a[i], b[i]);
while (st <= dr) {
if (!col[st]) {
col[st] = c[i];
urm[st] = dr + 1;
++ st;
}
else {
st = urm[st];
}
}
}
for (int i = 1; i <= n - 1; ++ i)
printf("%i\n", col[i]);
return 0;
}