Pagini recente » Cod sursa (job #3157655) | Cod sursa (job #1588381) | Cod sursa (job #339581) | Cod sursa (job #2150160) | Cod sursa (job #1534198)
#include <bits/stdc++.h>
using namespace std;
const int Speranta = 1e6 + 5;
int n;
int hi[Speranta], v[Speranta], A[Speranta], B[Speranta], C[Speranta];
int main(){
freopen("curcubeu.in", "r", stdin);
freopen("curcubeu.out", "w", stdout);
int a, b, c;
scanf("%d %d %d %d", &n, &a, &b, &c);
A[1] = a; B[1] = b; C[1] = c;
for(int i = 2; i < n; 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;
}
int Hi;
for(int j = n - 1; j > 0; j--){
Hi = max(A[j], B[j]);
for(int i = min(A[j], B[j]); i <= Hi; i++){
if(v[i] == 0){
v[i] = C[j];
hi[i] = Hi;
} else {
i = hi[i];
}
}
}
for(int i = 1; i < n; i++){
printf("%d\n", v[i]);
}
return 0;
}