Pagini recente » Cod sursa (job #478926) | Istoria paginii runda/lets_go_oni | Cod sursa (job #1677235) | Rating Rusz Elisabeta (erzsike) | Cod sursa (job #785758)
Cod sursa(job #785758)
#include <cstdio>
using namespace std;
typedef long long LL;
const int MaxN = 500005;
int N, K, Pi[MaxN];
LL X[MaxN];
void Solve() {
for (int i = N; i; --i)
X[i] -= X[i-1];
Pi[1] = 1;
for (int i = 2, p = 0; i <= N; ++i) {
for (; p && X[i] != X[p+1]; p = Pi[p]);
p += (X[i] == X[p+1]);
Pi[i] = p;
}
K = N-Pi[N];
}
void Read() {
freopen("reguli.in", "r", stdin);
scanf("%d", &N); --N;
for (int i = 0; i <= N; ++i)
scanf("%lld", &X[i]);
}
void Print() {
freopen("reguli.out", "w", stdout);
printf("%d\n", K);
for (int i = 1; i <= K; ++i)
printf("%lld\n", X[i]);
}
int main() {
Read();
Solve();
Print();
return 0;
}