Pagini recente » Cod sursa (job #1185088) | Cod sursa (job #371830) | Cod sursa (job #1162758) | Cod sursa (job #1223995) | Cod sursa (job #1005731)
#include<cstdio>
#include<algorithm>
#define NMAX 1000000+5
using namespace std;
int N;
int A[NMAX],B[NMAX],C[NMAX],next[NMAX],colour[NMAX];
int main()
{
int i,x,y;
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d",&N,&A[1],&B[1],&C[1]);
next[1]=1;
for(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;
next[i]=i;
}
for(i=N-1;i>=1;i--)
{
x=min(A[i],B[i]);
y=max(A[i],B[i]);
while(x<=y)
{
for(;x<=y && x!=next[x];x=next[x]);
if(x<=y) {colour[x]=C[i]; next[x]=y+1; x++;}
}
}
for(i=1;i<=N-1;i++) printf("%d\n",colour[i]);
return 0;
}