Pagini recente » Cod sursa (job #499593) | Cod sursa (job #3225191) | Cod sursa (job #3166599) | Cod sursa (job #931350) | Cod sursa (job #2718838)
#include <bits/stdc++.h>
using namespace std;
ifstream f("reguli.in"); ofstream g("reguli.out");
const int Nmax = 5e5 + 5;
int N, cat, rest, pi[Nmax];
long long delta[Nmax], x, y;
void build_kmp()
{ int K = 0;
for(int i = 2; i < N; ++i)
{ while(K && delta[K + 1] != delta[i]) K = pi[K - 1];
if(delta[K + 1] == delta[i]) K++;
pi[i] = K;
}
}
int main()
{ f >> N >> x;
for(int i = 1; i < N; ++i)
{ f >> y;
delta[i] = y - x;
x = y;
}
build_kmp();
int ans = (N - 1) - pi[N - 1];
g << ans << '\n';
for(int i = 1; i <= ans; ++i) g << delta[i] << '\n';
return 0;
}