Pagini recente » Cod sursa (job #1585064) | Cod sursa (job #453614) | Cod sursa (job #290431) | Cod sursa (job #2302764) | Cod sursa (job #898046)
Cod sursa(job #898046)
#include<cstdio>
#define maxn 1000000
#include<iostream>
using namespace std;
int nre,a,b,c,n,i,j,cul[maxn],nrv=0,t[maxn];
struct muchie{
int x1,x2,c;
};
muchie v[maxn];
int main(){
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d %d %d %d",&n,&a,&b,&c);
nre=1;
v[nre].x1=min(a,b);
v[nre].x2=max(a,b);
v[nre].c=c;
cul[1]=-1;
for(unsigned int i=2;i<n;++i){
a=(a%n*i%n)%n;
b=(b%n*i%n)%n;
c=(c%n*i%n)%n;
cul[i]=-1;
++nre;
v[nre].x1=min(a,b);
v[nre].x2=max(a,b);
v[nre].c=c;
}
while(nrv!=n-1){
for(unsigned int i=v[nre].x1;i<=v[nre].x2;++i)
if(cul[i]==-1){
cul[i]=v[nre].c;
++nrv;
t[i]=v[nre].x2+1;
++i;
}
else
i=t[i];
--nre;
}
for(unsigned int i=1;i<n;++i)
printf("%d\n",cul[i]);
return 0;
}