Pagini recente » Rating Horchidan Sonia-Florina (SoniaFlorina) | Cod sursa (job #678323) | Cod sursa (job #2815127) | Cod sursa (job #314648) | Cod sursa (job #239721)
Cod sursa(job #239721)
#include <stdio.h>
long long A[500001];
int p[500001];
int main()
{
FILE *in = fopen("reguli.in","r");
FILE *out = fopen("reguli.out","w");
int n;
fscanf(in,"%d",&n);
int nr=n-1,i;
long long x;
fscanf(in,"%lld",&A[0]);
for (i=1;i<n;i++)
{
fscanf(in,"%lld",&x);
A[i] = x-A[0];
A[0]=x;
}
int k=0;
for (i=2;i<n;i++)
{
while (k>0 && A[k+1]!=A[i]) k = p[k];
if (A[k+1]==A[i]) k++;
p[i]=k;
if (k && A[1]==A[i]) if (nr>k) nr=k;
}
fprintf(out,"%d\n",nr);
for (i=1;i<=nr;i++) fprintf(out,"%lld\n",A[i]);
}