Pagini recente » Cod sursa (job #861157) | Cod sursa (job #195687)
Cod sursa(job #195687)
#include <stdio.h>
#define N_Max 1000
long long n,i,k,q,s;
long long A[N_Max],PI[N_Max],X[N_Max];
int main()
{
freopen("reguli.in","rt",stdin);
freopen("reguli.out","wt",stdout);
scanf("%lld",&n);
for (i=0;i<n;i++)
scanf("%lld",&A[i]);
for (i=1;i<n;i++);
X[i]=A[i]-A[i-1];
// functia prefix
k=0;
PI[1]=0;
for (q=2;q<n;q++)
{
while (k>0 && X[k+1]!=X[q])
k=PI[k];
if (X[k+1]==X[q]) k++;
PI[q]=k;
}
k=n-1-PI[n-1];
s=1;
for (i=k+1;i<n;i++)
if (X[i]!=X[i-k])
{
s=0;
break;
}
if (!s) k=n-1;
printf("%lld\n",k);
for (i=1;i<=k;i++);
printf("%lld\n",X[i]);
return 0;}