Cod sursa(job #85975)

Utilizator coderninuHasna Robert coderninu Data 23 septembrie 2007 12:42:59
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Autumn Warmup 2007, Runda 2 Marime 0.91 kb
#include <stdio.h>
#define infile "curcubeu.in"
#define outfile "curcubeu.out"
#define nmax 1000001

#define min(x,y) ( (x) < (y) ? (x) : (y) )
#define max(x,y) ( (x) > (y) ? (x) : (y) )

long n, a, b, c, i, minim, maxim, v[nmax];

void readdata();
void writedata();
void solve();

int main()
{
 readdata();
 solve();
 writedata();
 return 0;
}

void readdata()
{
 freopen(infile, "r", stdin);
 scanf("%ld %ld %ld %ld", &n, &a, &b, &c);
 fclose(stdin);
}

void writedata()
{
 freopen(outfile, "w", stdout);
 for (i=1; i<n; i++)
     printf("%ld\n", v[i]);
 fclose(stdout);
}

void solve()
{
 minim=min(a,b);
 maxim=max(a,b);
 for (i=minim; i<=maxim; i++)
     v[i]=c;
 for (long tt=1; tt<n-1; tt++)
     {
      a=(a*(tt+1))%n;
      b=(b*(tt+1))%n;
      c=(c*(tt+1))%n;
      minim=min(a,b);
      maxim=max(a,b);
      for (i=minim; i<=maxim; i++)
	  v[i]=c;
     }
}