Pagini recente » Cod sursa (job #295492) | Cod sursa (job #442804) | Cod sursa (job #1163722) | Cod sursa (job #524551) | Cod sursa (job #517527)
Cod sursa(job #517527)
#include<stdio.h>
using namespace std;
FILE *in=fopen("reguli.in","r"),*out=fopen("reguli.out","w");
long long A[500002];
int V[500002];
int main()
{
int i,N,mic,k=0;
long long ax,x;
fscanf(in,"%d",&N);
fscanf(in,"%lld",&ax);
for(i=1;i<N;++i)
{
fscanf(in,"%lld",&x);
A[i]=x-ax;
ax=x;
}
mic=N-1;
for(i=2;i<N;i++)
{
while(A[k+1]!=A[i]&&k)
k=V[k];
if(A[k+1]==A[i])
++k;
V[i]=k;
if(i%(i-k)==0&&k)
mic=i-k;
}
fprintf(out,"%d\n",mic);
for(i=1;i<=mic;++i)
fprintf(out,"%lld\n",A[i]);
fclose(in);
fclose(out);
return 0;
}