Cod sursa(job #85906)

Utilizator M@2Te4iMatei Misarca M@2Te4i Data 23 septembrie 2007 10:49:09
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Autumn Warmup 2007, Runda 2 Marime 0.75 kb
#include<stdio.h>
#include<string.h>

long long a,b,c,w[1000000];
long n;

void citire()
{
freopen("curcubeu.in","r",stdin);     
scanf("%ld%lld%lld%lld",&n,&a,&b,&c);
fclose(stdin);
}     

void umplere(long a, long b, long c)
{
if (a<=b)     
   for (int i=a; i<=b; i++)
       w[i]=c;
   else for (int i=b; i<=a; i++)
            w[i]=c;     
}     

void rezolvare()
{
umplere(a,b,c);
for (int i=2; i<=n-1; i++)
    {
    a=(a*i)%n;
    b=(b*i)%n;
    c=(c*i)%n;
    umplere(a,b,c);
    }
}

void afisare()
{
freopen("curcubeu.out","w",stdout);     
for (int i=1; i<n; i++)
    printf("%lld\n",w[i]);
fclose(stdout);
}     

int main()
{
memset(w,0,sizeof(w));
citire();
rezolvare();
afisare();
return 0;    
}