Pagini recente » Cod sursa (job #2156140) | Cod sursa (job #1533188) | Cod sursa (job #1709116) | Cod sursa (job #2770486) | Cod sursa (job #2717293)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
vector<int> preffix_function(const vector<int> &A) {
vector<int> pi(A.size());
int N = A.size() - 1;
for(int i = 2, q = 0; i <= N; ++i) {
while(q && A[q + 1] != A[i])
q = pi[q];
if(A[q + 1] == A[i])
++q;
pi[i] = q;
}
return pi;
}
int32_t main() {
int N, prv;
fin >> N >> prv;
vector<int> a{0};
for(int i = 2; i <= N; ++i) {
int x;
fin >> x;
a.emplace_back(x - prv);
prv = x;
}
vector<int> pi = preffix_function(a);
N = a.size() - 1;
fout << N - pi[N] << '\n';
for(int i = 1; i <= N - pi[N]; ++i)
fout << a[i] << '\n';
}