Cod sursa(job #86372)

Utilizator blasterzMircea Dima blasterz Data 24 septembrie 2007 13:44:35
Problema Curcubeu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <string>
#define maxn 1000001

int A[maxn], B[maxn],C[maxn], color[maxn], next[maxn];

int main()
{
   freopen("curcubeu.in","r",stdin);
int n, a,b,c, i;
   scanf("%d %d %d %d\n", &n, &a, &b,&c);

   A[1]=a;B[1]=b;C[1]=c;

   for(i=2;i<n;++i)
      A[i]=(A[i-1]*i)%n,
      B[i]=(B[i-1]*i)%n,
      C[i]=(C[i-1]*i)%n;

   for(i=1;i<n;++i)
   {
      a=A[i];b=B[i];
      A[i]=a<?b;
      B[i]=a>?b;
   }
    int j;
   for(i=n-1;i>=1;--i)
   {
      a=A[i];
      b=B[i];
      c=C[i];
      for(j=a;j<=b;)
         {
          if(j==next[j])break;
         if(!next[j]) { next[j]=b; color[j]=c; }
           else j=next[j];

          }

    }
   freopen("curcubeu.out","w",stdout);
    for(i=1;i<n;++i) printf("%d\n", color[i]);


 return 0;
}