Pagini recente » Cod sursa (job #1063768) | Cod sursa (job #1962199) | Cod sursa (job #317465) | Cod sursa (job #2569467) | Cod sursa (job #613923)
Cod sursa(job #613923)
#include <cstdio>
const long long N = 500005;
int n, pi[N];
long long a[N], v[N];
void read() {
scanf("%d", &n);
for (int i = 0; i < n; ++i)
scanf("%lld", &v[i]);
}
void init() {
for (int i = 1; i < n; ++i)
a[i] = v[i] - v[i - 1];
}
void prefix() {
pi[1] = 0;
int lp = 0;
for (int i = 2; i < n; ++i) {
while (lp && a[lp + 1] != a[i])
lp = pi[lp];
if (a[lp + 1] == a[i])
++lp;
pi[i] = lp;
}
}
int main() {
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
read();
init();
prefix();
printf("%d\n", n - 1 - pi[n - 1]);
for (int i = 1; i <= n - 1 - pi[n - 1]; ++i)
printf("%d\n", a[i]);
return 0;
}