Pagini recente » Cod sursa (job #1021256) | Cod sursa (job #1990677) | Cod sursa (job #1702457) | Cod sursa (job #2592445) | Cod sursa (job #1133101)
#include<cstdio>
struct cul{
int a;
int b;
int c;
}x[1001000];
int n,a,b,c,i,j,v[1001000],y[1001000];
FILE *f,*g;
int maxim(int a,int b){
if(a>b)
return a;
return b;
}
int main(){
f=fopen("curcubeu.in","r");
g=fopen("curcubeu.out","w");
fscanf(f,"%d%d%d%d",&n,&a,&b,&c);
x[1].a=a;
x[1].b=b;
x[1].c=c;
for(i=2;i<n;i++){
a=(1LL*a*i)%n;
b=(1LL*b*i)%n;
c=(1LL*c*i)%n;
if(a<b){
x[i].a=a;
x[i].b=b;
}
else{
x[i].a=b;
x[i].b=a;
}
x[i].c=c;
}
for(i=n-1;i>=1;i--){
for(j=x[i].a;j<=x[i].b;j++){
if(v[j]==0){
v[j]=x[i].c;
y[j]=x[i].b+1;
}
else{
while(v[j]!=0){
j=y[j];
}
y[j]=maxim(j,x[i].b+1);
j--;
}
}
}
for(i=1;i<n;i++){
fprintf(g,"%d\n",v[i]);
}
fclose(f);
fclose(g);
return 0;
}