Pagini recente » Cod sursa (job #2348602) | Cod sursa (job #430390) | Cod sursa (job #2811994) | Cod sursa (job #3289507) | Cod sursa (job #919122)
Cod sursa(job #919122)
#include<fstream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,A[1000100],B[1000100],C[1000100],next[1000100],v[1000100];
int main()
{
int i,poz,start,finish,color;
freopen("curcubeu.in","r",stdin);
scanf("%d %d %d %d",&n,A+1,B+1,C+1);
next[1]=1;
for(i=2;i<n;i++)
{
A[i]=(1LL*A[i-1]*i)%n;
B[i]=(1LL*B[i-1]*i)%n;
C[i]=(1LL*C[i-1]*i)%n;
next[i]=i;
}
for(i=n-1;i>0;i--)
{
start=A[i];
finish=B[i];
if(start>finish)
swap(start,finish);
color=C[i];
poz=start;
while(poz<=finish)
{
while(next[poz]!=poz && poz<=finish)
poz=next[poz];
if(poz>finish)
continue;
v[poz]=color;
next[poz]=finish+1;
poz++;
}
}
freopen("curcubeu.out","w",stdout);
for(i=1;i<n;i++)
printf("%d\n",v[i]);
return 0;
}