Pagini recente » Cod sursa (job #2677626) | Cod sursa (job #3260478) | Cod sursa (job #602047) | Cod sursa (job #1765790) | Cod sursa (job #2254860)
#include <bits/stdc++.h>
#define MaxN 100005
std::ifstream InFile("curcubeu.in");
int N, A[MaxN], B[MaxN], C[MaxN],
Next[MaxN], Color[MaxN];
bool Seen[MaxN];
int main () {
freopen("curcubeu.out", "w", stdout);
InFile >> N >> A[1] >> B[1] >> C[1];
for(int i=1; i<N-1; ++i) {
A[i+1]=(1LL*A[i]*(i+1))%N;
B[i+1]=(1LL*B[i]*(i+1))%N;
C[i+1]=(1LL*C[i]*(i+1))%N;
}
for(int i=0; i<N; ++i) Next[i+1] = i+1;
for (int j=N-1, i, st, dr; j>0; --j) {
st = std::min(A[j], B[j]);
dr = A[j]+B[j] - st;
for(i=st;i<=dr;++i)
if(Seen[i])
i = Next[i]-1;
else {
Color[i] = C[j];
Seen[i] = 1;
Next[i] = dr+1;
}
}
for(int i=0; i<N-1; ++i)
printf("%d\n", Color[i+1]);
return 0;
}