Pagini recente » Cod sursa (job #2336791) | Cod sursa (job #969757) | Cod sursa (job #372848) | Cod sursa (job #2163344) | Cod sursa (job #1462136)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 1000000
int v[MAXN],a[MAXN],b[MAXN],c[MAXN],v1[MAXN];
inline int find(int x){
if(v1[x]==0)
return x;
return find(v1[x]);
}
int main(){
FILE*fi,*fout;
int i,j,n,aux,con;
long long x;
fi=fopen("curcubeu.in" ,"r");
fout=fopen("curcubeu.out" ,"w");
fscanf(fi,"%d%d%d%d" ,&n,&a[0],&b[0],&c[0]);
x=n;
i=1;
while(i<n-1){
a[i]=(1LL*a[i-1]*(i+1))%x;
b[i]=(1LL*b[i-1]*(i+1))%x;
c[i]=(1LL*c[i-1]*(i+1))%x;
if(a[i]>b[i]){
aux=a[i];
a[i]=b[i];
b[i]=aux;
}
i++;
}
i=n-2;
con=0;
while(i>=0){
x=find(a[i]);
while(x<=b[i]){
v[x]=c[i];
v1[x]=b[i]+1;
x=find(x+1);
}
i--;
}
for(i=1;i<n;i++)
fprintf(fout,"%d\n" ,v[i]);
fclose(fi);
fclose(fout);
return 0;
}