Cod sursa(job #896128)
#include<cstdio>
#define maxn 1000000
#include<iostream>
using namespace std;
int nre,a,b,c,n,i,j,cul[maxn];
struct muchie{
int x1,x2,c;
};
muchie v[maxn];
int check(){
for(int i=1;i<n;++i)
if(cul[i]==-1)
return 0;
return 1;
}
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(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(!check()){
for(int i=v[nre].x1;i<=v[nre].x2;++i)
if(cul[i]==-1)
cul[i]=v[nre].c;
--nre;
}
for(int i=1;i<n;++i)
printf("%d\n",cul[i]);
return 0;
}