Pagini recente » Cod sursa (job #1312886) | Cod sursa (job #3292888) | Cod sursa (job #2715502) | Cod sursa (job #2192436) | Cod sursa (job #1820047)
#include<cstdio>
struct ceva{int a,b,c;};
ceva v[1000000];
int jump[1000000];
int cul[1000000];
int main(){
int n,aux,i,j,jj;
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
scanf("%d%d%d%d",&n,&v[1].a,&v[1].b,&v[1].c);
jump[1]=2;
if(v[1].a>v[1].b){
aux=v[1].a;
v[1].a=v[1].b;
v[1].b=aux;
}
for(i=2;i<n;i++){
v[i].a=((long long)v[i-1].a*i)%n;
v[i].b=((long long)v[i-1].b*i)%n;
v[i].c=((long long)v[i-1].c*i)%n;
if(v[i].a>v[i].b){
aux=v[i].a;
v[i].a=v[i].b;
v[i].b=aux;
}
jump[i]=i+1;
}
for(i=n-1;i>=1;i--){
for(j=v[i].a;j<v[i].b;){
if(cul[j]==0)
cul[j]=v[i].c;
jj=jump[j];
jump[j]=v[i].b;
j=jj;
}
if(cul[v[i].b]==0)
cul[v[i].b]=v[i].c;
}
for(i=1;i<=n-1;i++)
printf("%d\n",cul[i]);
return 0;
}