Pagini recente » Cod sursa (job #1288090) | Cod sursa (job #2074782) | Cod sursa (job #1937397) | Cod sursa (job #831572) | Cod sursa (job #1446066)
#include<cstdio>
#define N 1000000
#define ll long long
using namespace std;
int next[N+1];
int a[N+1];
int b[N+1];
int c[N+1];
int color[N+1];
int urm(int x){
if (next[x]==0) return x;
next[x]=urm(next[x]);
return next[x];
}
int main(){
freopen ("curcubeu.in","r",stdin);
freopen ("curcubeu.out","w",stdout);
int n,i,aux,j;
scanf ("%d",&n);
scanf ("%d%d%d",&a[1],&b[1],&c[1]);
for(i=2;i<n;i++){
a[i]=((ll)i*a[i-1])%n;
b[i]=((ll)i*b[i-1])%n;
c[i]=((ll)i*c[i-1])%n;
if (a[i]>b[i]){
aux=a[i];
a[i]=b[i];
b[i]=aux;
}
}
for(i=n-1;i>0;i--){
j=urm(a[i]);
while(j<=b[i]){
color[j]=c[i];
next[j]=b[i]+1;
j=urm(j+1);
}
}
for(i=1;i<n;i++)
printf ("%d\n",color[i]);
return 0;
}