Cod sursa(job #1109759)

Utilizator vladvaldezVlad Dimulescu vladvaldez Data 17 februarie 2014 16:05:07
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

using namespace std;
FILE *f=fopen("reguli.in","r");
FILE *g=fopen("reguli.out","w");

long long  x,x1,n,j,i,nr[500001],v[500001],nn,k,p,u;

int main()
{
fscanf(f,"%lld",&n);
fscanf(f,"%lld",&x);
for(i=2;i<=n;i++)
{
fscanf(f,"%lld",&x1);
v[i-1]=x1-x;
x=x1;
}
n--;
p=2;
nr[1]=v[1];nn=1;
k=1;
while (p<=n)
{
if (nr[k]==v[p]){k++;if (k>nn)k=1;p++;}
else if (v[p]==nr[1]){for(j=nn+1;j<p;j++)nr[j]=v[j];nn=p-1;k=2;p++;}
else {for(j=nn+1;j<=p;j++)nr[j]=v[j];nn=p;p++;k=1;}
}
fprintf(g,"%lld",nn);
for(i=1;i<=nn;i++)
fprintf(g,"\n%lld",nr[i]);

fclose(g);
return 0;
}