Cod sursa(job #1076463)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 10 ianuarie 2014 11:48:40
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;
    if(a>b)
    {
        d=a;
        a=b;
        b=d;
    }
    c=(c*i)%n;
    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;
}