Cod sursa(job #86870)

Utilizator blasterzMircea Dima blasterz Data 25 septembrie 2007 20:48:43
Problema Curcubeu Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>
#define maxn 1000001

int a[maxn], b[maxn],c[maxn], next[maxn], color[maxn];
int A, B, C, N;

int main()
{

  freopen("curcubeu.in","r",stdin);

  scanf("%d %d %d %d\n", &N, &A, &B, &C);
  
  a[1]=A;
  b[1]=B;
  c[1]=C;
  int i,j, p, q;
  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=N-1;i>=1;--i)
    {
      A=a[i]<?b[i];
      B=b[i]>?a[i];
      C=c[i];
   
      for(j=A;j<=B;)
	{
	  if(!next[j]) { next[j]=B+1; color[j]=C; ++j;}
	  else j=next[j];
	}
    }

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