Pagini recente » Cod sursa (job #843088) | Cod sursa (job #901653) | Cod sursa (job #490533) | Cod sursa (job #913132) | Cod sursa (job #2979605)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("reguli.in");
ofstream fout ("reguli.out");
const int kN = 1e6 + 5;
long long a[kN], n, x;
int z[kN];
int main(){
ios_base::sync_with_stdio(false);
fin >> n >> x;
for (int i = 0; i < n - 1; i++){
long long y; fin >> y;
a[i] = y - x;
x = y;
}
--n;
int l = 0, r = 0;
for (int i = 1; i < n; i++){
if (i <= r){
z[i] = min(z[i - l], r - i + 1);
}
while (i + r < n && a[z[i]] == a[z[i] + i]){
++z[i];
}
if (i + z[i] - 1 > r){
l = i;
r = i + z[i] - 1;
}
}
int ans = n;
for (int i = 0; i < n; i++){
if (i + z[i] == n){
ans = i;
break;
}
}
fout << ans << '\n';
for (int i = 0; i < ans; i++){
fout << a[i] << '\n';
}
}