Cod sursa(job #1109742)
Utilizator | Vlad Dimulescu vladvaldez | Data | 17 februarie 2014 15:53:40 |
---|---|---|---|
Problema | Reguli | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <stdio.h>
using namespace std;
FILE *f=fopen("reguli.in","r");
FILE *g=fopen("reguli.out","w");
int x,x1,n,j,i,nr[500001],v[500001],nn,k,p,u;
int main()
{
fscanf(f,"%d",&n);
fscanf(f,"%d",&x);
for(i=2;i<=n;i++)
{
fscanf(f,"%d",&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 {for(j=nn+1;j<=p;j++)nr[j]=v[j];nn=p;p++;k=1;}
}
fprintf(g,"%d",nn);
for(i=1;i<=nn;i++)
fprintf(g,"\n%d",nr[i]);
fclose(g);
return 0;
}