Pagini recente » Cod sursa (job #1771983) | Cod sursa (job #1684382) | Cod sursa (job #2921735) | Cod sursa (job #1644320) | Cod sursa (job #563794)
Cod sursa(job #563794)
#include <stdio.h>
#define Dim 1000001
int A[Dim],B[Dim],C[Dim],color[Dim],T[Dim];
int main()
{
int N,i,pos,aux;
freopen("curcubeu.in","r",stdin);
scanf("%d%d%d%d",&N,&A[1],&B[1],&C[1]);
for(i=2;i<N;i++)
{
A[i]=((long long)A[i-1]*(long long)i)%N;
B[i]=((long long)B[i-1]*(long long)i)%N;
C[i]=((long long)C[i-1]*(long long)i)%N;
}
for(i=1;i<N;i++)
if(A[i]>B[i])
{
aux=A[i];
A[i]=B[i];
B[i]=aux;
}
for(i=0;i<N;i++)
{
T[i]=i-1;
color[i]=0;
}
for(i=N-1;i>0;i--)
{
pos=B[i];
while(pos>=A[i])
{
if(color[pos]==0) color[pos]=C[i];
aux=pos;
pos=T[pos];
T[aux]=A[i]-1;
}
}
freopen("curcubeu.out","w",stdout);
for(i=1;i<N;i++) printf("%d\n",color[i]);
return 0;
}