Pagini recente » Cod sursa (job #1418310) | Cod sursa (job #1241200) | Cod sursa (job #1707236) | Cod sursa (job #246981) | Cod sursa (job #975804)
Cod sursa(job #975804)
#include <cassert>
#include <cstdio>
const int nmax=500010;
int p[nmax],v[nmax];
int n=0,i=0,l=0,a=0,b=0;
void prefix()
{
int k=0;
for(i=2; i<n; ++i)
{
while(v[i]!=v[k+1] && k>0)
k=p[k];
if(v[i]==v[k+1])
++k;
p[i]=k;
}
}
int main()
{
assert(freopen("reguli.in","r",stdin));
assert(freopen("reguli.out","w",stdout));
assert(scanf("%d%d",&n,&a));
for(i=1; i<n; ++i)
{
b=a;
assert(scanf("%d",&v[i]));
a=v[i];
v[i]-=b;
}
prefix();
l=n-1-p[n-1];
printf("%d\n",l);
for (i=1; i<=l; ++i)
printf("%d\n",v[i]);
return 0;
}