Pagini recente » Cod sursa (job #997254) | Rating Bugeac Mihai Serban (Mihaibugeak) | Cod sursa (job #2323276) | Cod sursa (job #276134) | Cod sursa (job #1819125)
#include <bits/stdc++.h>
#define forinc(i, j, k) for(int i = j, _k = k; i <= _k; ++i)
#define nn 5000001
#define ll long long
using namespace std;
ll x[nn], a[nn];int nxt[nn];
int n, result;
int read()
{
ll res = 0;
char c = getchar();
while(c < '0'|| c > '9') c = getchar();
for(; c >='0' && c <='9'; c = getchar()) res = res * 10 + c - '0';
return res ;
}
int main()
{
freopen("reguli.in", "r", stdin);
freopen("reguli.out", "w", stdout);
//n = read();
cin >> n;
n--;
forinc(i, 0, n)
{
//x[i] = read();
cin >> x[i];
}
forinc(i, 1, n) a[i] = x[i] - x[i - 1] ;
//forinc(i, 1, n) cout << a[i]<<endl;
int j = 0 ;
forinc(i, 2, n)
{
while(j != 0 && a[i] != a[j + 1]) j = nxt[j];
if (a[i] == a[j + 1]) nxt[i] = ++j;
}
cout << result = n - nxt[n] << "\n";
forinc(i, 1, result) cout << a[i]<< "\n";
//printf("%d \n", result);
//forinc(i, 1, result) printf("%lld \n", a[i]);
}