Pagini recente » Cod sursa (job #1210178) | Cod sursa (job #2413835) | Cod sursa (job #1353156) | Cod sursa (job #1561648) | Cod sursa (job #1759942)
#include <bits/stdc++.h>
using namespace std;
int N;
int A[500005];
int P[500005];
void read()
{
scanf("%d", &N);
for (int i = 1; i <= N; ++i)
scanf("%d", &A[i]);
for (int i = 1; i < N; ++i)
A[i] = A[i+1] - A[i];
--N;
}
void make_prefix()
{
int q = 0;
for (int i = 2; i <= N; ++i) {
while (q && A[q + 1] != A[i])
q = P[q];
q += A[q + 1] == A[i];
P[i] = q;
}
}
int main()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
read();
make_prefix();
printf("%d\n", N - P[N]);
for (int i = 1; i <= N - P[N]; ++i)
printf("%d\n", A[i]);
return 0;
}