Cod sursa(job #170225)
| Utilizator | Data | 2 aprilie 2008 15:51:17 | |
|---|---|---|---|
| Problema | Reguli | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<stdio.h>
#define N 500000
#define In "reguli.in"
#define Out "reguli.out"
FILE *f;
long long x[N],n,i,k,a,b,sol[N];
int main()
{
f=fopen(In,"r");
fscanf(f,"%lld%lld",&n,&a);
n--;
for(i=0;i<n;i++)
{
fscanf(f,"%lld",&b);
x[i]=b-a;
a=b;
}
k=1,sol[0]=x[0],i=1;
while(i<n)
if(x[i]!=sol[i%k])
{
sol[k]=x[k];
k++; i=k;
}
else
i++;
freopen(Out,"w",f);
fprintf(f,"%lld\n",k);
for(i=0;i<k;i++)
fprintf(f,"%lld\n",sol[i]);
fclose(f);
return 0;
}
