Pagini recente » Profil M@2Te4i | Cod sursa (job #1991006) | Cod sursa (job #460920) | Cod sursa (job #1597846) | Cod sursa (job #2054258)
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int v[1000001];
int a[1000001];
int b[1000001];
int c[1000001];
int next[1000001];
int main()
{
FILE *fin, *fout;
int n,x,y,z,i,j,aux;
fin=fopen("curcubeu.in","r");
fout=fopen("curcubeu.out","w");
fscanf(fin,"%d%d%d%d",&n,&a[1],&b[1],&c[1]);
if(a[1]>b[1]){
aux=a[1];
a[1]=b[1];
b[1]=aux;
}
next[1]=2;
for(i=2;i<n;i++){
a[i]=(a[i-1]*i)%n;
b[i]=(b[i-1]*i)%n;
c[i]=(c[i-1]*i)%n;
if(a[i]>b[i]){
int aux=a[i];
a[i]=b[i];
b[i]=aux;
}
next[i]=i+1;
}
for(i=n-1;i>0;i--){
for(j=a[i];j<=b[i];aux=next[j],next[j]=b[i]+1,j=aux)
if(v[j]==0)
v[j]=c[i];
}
for(i=1;i<n;i++){
fprintf(fout,"%d\n",v[i]);
}
fclose(fin);
fclose(fout);
return 0;
}