Pagini recente » Cod sursa (job #1422929) | Cod sursa (job #2765324) | Cod sursa (job #2755919) | Cod sursa (job #1575188) | Cod sursa (job #938712)
Cod sursa(job #938712)
#include<cstdio>
#include<algorithm>
using namespace std;
const int NMAX = 1000005;
int i,j,n,A[NMAX],B[NMAX],C[NMAX],Color[NMAX],Next[NMAX],start,finish,poz;
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d",&n,&A[1],&B[1],&C[1]);
for(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;
}
for(i=1;i<n;i++) Next[i]=i;
for(i=n-1;i;i--)
{
start=min(A[i],B[i]);
finish=max(A[i],B[i]);
for(poz=start;poz<=finish;)
{
for(;poz!=Next[poz] && poz<=finish;poz=Next[poz]);
if(poz>finish) break;
Color[poz]=C[i];
Next[poz]=finish+1;
poz++;
}
}
for(i=1;i<n;i++) printf("%d\n",Color[i]);
return 0;
}