Cod sursa(job #18661)

Utilizator lucibitLucian Onea lucibit Data 18 februarie 2007 12:55:46
Problema Reguli Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasele 11-12 Marime 0.52 kb
#include<stdio.h>
#define maxN 500000
int main ()
{ long int i,N,x[maxN],d[maxN];

 freopen ("reguli.in","r",stdin);
 scanf("%ld\n",&N);
 for(i=1;i<=N;i++) {scanf("%ld\n",&x[i]); if(i>1) d[i-1]=x[i]-x[i-1];}
  long int p,q,ok,k;

 p=1;q=1;
 do
 {p=1;k=1;
  q++;
  ok=1;
  while (d[p]!=d[q]) {q++;  k++;}
  for(i=q;(i<=N-1) && ok;i++)  { if(d[i-k]!=d[i]) ok=0; }
  }
  while ((q<=N-1)&& !ok);

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