Pagini recente » Cod sursa (job #2771488) | Cod sursa (job #2408644) | Cod sursa (job #2560174) | Cod sursa (job #1323057) | Cod sursa (job #246108)
Cod sursa(job #246108)
#include<stdio.h>
#define dim 500001
int n,i,k,a[dim],b[dim];
void fill()
{int x,y;
scanf("%d",&y);
for(i=1;i<n;i++)
{
scanf("%d",&x);
a[i]=x-y;
y=x;
}}
int check(int y)
{int x,p;
x=1;
for(p=y;p<n;++p,++x)
{
if(x==k+1)
x=1;
if(a[p]!=b[x])
return 1;
}
return 0;
}
void afis(int i)
{
printf("%d\n",k);
for(k=1;k<=i;k++)
printf("%d\n",b[k]);
}
int solve()
{
k=1;
for(i=1;i<n;i++)
{
if(b[1]==a[i])
{//printf("%d %d %d %d\n",i,n,b[1],a[i]);
if(check(i)==0)
{afis(k);
return 0;
}}
else
{ b[++k]=a[i];
//printf("Crestem k: %d %d\n",k,b[k]);
}
}
afis(n-1);
}
int main ()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
scanf("%d",&n);
fill();
b[1]=a[1];
solve();
// afis(n);
}