Cod sursa(job #1076467)
Utilizator | Data | 10 ianuarie 2014 11:55:42 | |
---|---|---|---|
Problema | Curcubeu | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include<stdio.h>
struct sp
{
int a,b,c;
}v[1000005];
int l[1000005];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int n,a,b,c,d,i,j;
scanf("%d%d%d%d",&n,&a,&b,&c);
for(i=1;i<n;i++)
{
a=(a*i)%n;
b=(b*i)%n;
c=(c*i)%n;
if(a>b)
{
d=a;
a=b;
b=d;
}
v[i].a=a;
v[i].b=b;
v[i].c=c;
}
for(i=n-1;i>=1;i--)
{
for(j=v[i].a;j<=v[i].b;j++)
if(l[j]==0)
l[j]=v[i].c;
else
j=v[l[j]].b;
v[i].b=v[l[v[i].b]].b;
}
for(i=1;i<n;i++)
printf("%d\n",l[i]);
return 0;
}