Cod sursa(job #1076640)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 10 ianuarie 2014 14:22:34
Problema Curcubeu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
struct sp
{
    long long a,b,c;
}v[1000005];
int l[1000005],e[1000005];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
long long n,a,b,c,d,i,j;
scanf("%lld%lld%lld%lld",&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;
    e[i]=i;
}
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;
        e[j]=v[i].b+1;
    }
    else
        j=e[j]-1;
}
for(i=1;i<n;i++)
printf("%d\n",l[i]);
    return 0;
}