Pagini recente » Cod sursa (job #142675) | Cod sursa (job #1645587) | Cod sursa (job #3259262) | Cod sursa (job #134886) | Cod sursa (job #982374)
Cod sursa(job #982374)
#include <cstdio>
#define SIZE 500001
using namespace std;
int n, i, j, pi[SIZE];
long long first, last, a[SIZE];
int main()
{
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
scanf("%d%lld", &n, &first);
for(i=2;i<=n;++i)
{
scanf("%lld", &last);
a[i-1]=last-first;
first=last;
}
n--;
j=0;
for(i=2;i<=n;++i)
{
while(j>0 && a[j+1]!=a[i])
j=pi[j];
if(a[j+1]==a[i])
++j;
pi[i]=j;
}
n-=pi[n];
printf("%d\n", n);
for(i=1;i<=n;++i)
printf("%lld\n", a[i]);
return 0;
}