Pagini recente » Cod sursa (job #2369902) | Cod sursa (job #1681588) | Cod sursa (job #2833770) | Cod sursa (job #2322702) | Cod sursa (job #1280882)
#include<stdio.h>
#include<iostream>
using namespace std;
int N, pi[500100], q;
long long a[500100],b[500100];
int main() {
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i) {
scanf("%lld",&a[i]);
}
for(int i=1;i<N;++i) {
b[i] = a[i+1] - a[i];
}
--N;
for(int i=2;i<=N;++i) {
while(q && b[i] != b[q+1]) {
q = pi[q];
}
if(b[i]==b[q+1]) {
++q;
}
pi[i] = q;
}
printf("%d\n",N - pi[N]);
for(int i=1;i<=N-pi[N];++i) {
printf("%lld\n",b[i]);
}
return 0;
}