Pagini recente » Cod sursa (job #137014) | Cod sursa (job #2923788) | Cod sursa (job #3148670) | Cod sursa (job #2718761) | Cod sursa (job #1787752)
#include <cstdio>
using namespace std;
long long v1[500010],v[500010];
int d[500010];
int main()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
int n,k,sol;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&v1[i]);
v[i-1]=v1[i]-v1[i-1];
}
k=0;
for(int i=2;i<n;i++)
{
while(k>0 && v[k+1]!=v[i]) k=d[k];
if(v[i]==v[k+1]) k++;
d[i]=k;
}
for(sol=n-1;d[sol]>0;sol=sol-d[sol]);
printf("%d\n",sol);
for(int i=1;i<=sol;i++)
printf("%lld\n",v[i]);
return 0;
}