Pagini recente » Cod sursa (job #215375) | Cod sursa (job #604150) | Cod sursa (job #2045586) | Cod sursa (job #1112764) | Cod sursa (job #2487263)
#include<cstdio>
using namespace std;
const int NMAX=1000005;
int a[NMAX],b[NMAX],c[NMAX],next[NMAX],col[NMAX];
int main(){
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int n;
scanf("%d%d%d%d", &n, &a[1], &b[1], &c[1]);
if(a[1]>b[1]){
int aux=a[1];
a[1]=b[1];
b[1]=aux;
}
for(int i=2;i<n;i++){
a[i]=(a[i-1]*1LL*i)%n;
b[i]=(b[i-1]*1LL*i)%n;
c[i]=(c[i-1]*1LL*i)%n;
if(a[i]>b[i]){
int aux=a[i];
a[i]=b[i];
b[i]=aux;
}
}
for(int t=n-1;t>0;t--)
for(int i=a[t];i<=b[t];)
if(col[i])
i=next[col[i]]+1;
else{
col[i]=c[t];
next[col[i]]=i;
i++;
}
for(int i=1;i<n;i++)
printf ("%d\n", col[i]);
return 0;
}