Cod sursa(job #18619)

Utilizator moga_florianFlorian MOGA moga_florian Data 18 februarie 2007 12:48:07
Problema Reguli Scor 70
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasele 11-12 Marime 0.63 kb
using namespace std;
#include<fstream>
#include<stdio.h>
#define nmax 500005

long long a[nmax];
int sol[nmax];
int n;

int main()
{
FILE *fin=fopen("reguli.in","r"),
     *fout=fopen("reguli.out","w");
     
int i,j;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++) fscanf(fin,"%lld",&a[i]);
for(i=1;i<n;i++) a[i]=a[i+1]-a[i];
n--;

sol[1]=1;
for(i=2;i<=n;i++)
  {
  j=i%sol[i-1];
  if(j==0) j=sol[i-1];
  
  if(a[i]==a[j])
    sol[i]=sol[i-1];
  else
    sol[i]=i;       
  }
   
fprintf(fout,"%d\n",sol[n]);
for(i=1;i<=sol[n];i++)
  fprintf(fout,"%lld\n",a[i]);
   
fclose(fin);
fclose(fout);
return 0;   
}