Pagini recente » Cod sursa (job #1069631) | Cod sursa (job #2102953) | Cod sursa (job #2236041) | Cod sursa (job #1520216) | Cod sursa (job #2187328)
#include <iostream>
#include <fstream>
#include <cstdio>
#define nmax 1000002
using namespace std;
FILE *fin=fopen("curcubeu.in","r");
FILE *fout=fopen("curcubeu.out","w");
int n,a[nmax],b[nmax],c[nmax],poz,urm[nmax],st,dr,v[nmax];
int main()
{
fscanf(fin,"%d%d%d%d",&n,&a[1],&b[1],&c[1]);
for(int 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;
}
for(int i = n -1 ; i >= 1; i--)
{
st=min(a[i],b[i]);
dr=max(a[i],b[i]);
poz=st;
while(poz<=dr)
{
if(v[poz]!=0)
{
poz=urm[poz];
}
else
{
v[poz]=c[i];
urm[poz]=dr+1;
poz++;
}
}
}
for(int i =1 ; i < n ;i++)
fprintf(fout,"%d\n",v[i]);
return 0;
}