Pagini recente » Cod sursa (job #2355636) | Cod sursa (job #2808426) | Cod sursa (job #491261) | Cod sursa (job #382454) | Cod sursa (job #22711)
Cod sursa(job #22711)
#include<stdio.h>
#define nmax 500000
long n,x[nmax],y[nmax],k;
long perioada()
{long i=1,b,niv=0,j;
y[0]=x[0];
while(x[i]!=y[0])
{y[i]=x[i];
++i;}
b=i;
k=b;
for(i=b;i<n-1;++i)
if(x[i]!=y[niv])
{niv=0;
i=b;
y[k]=x[i];
++i;
while(x[i]!=y[0])
{y[i]=x[i];
++i;
if(i==n) return n;}
b=i-1;
i--;
k=b+1;}
else {++niv;
if(niv==k) niv=0;}
return 0;}
int main()
{long i,p,q;
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
scanf("%d%d",&n,&p);
for(i=0;i<n-1;++i)
{scanf("%d",&q);
x[i]=q-p;
p=q;}
perioada();
printf("%d\n",k);
for(i=0;i<k;++i)
printf("%d\n",y[i]);
fclose(stdin);
fclose(stdout);
return 0;}