Pagini recente » Cod sursa (job #1873496) | Cod sursa (job #1957713) | Cod sursa (job #1612998) | Cod sursa (job #2251273) | Cod sursa (job #2286858)
#include <bits/stdc++.h>
#define MAXN 500005
int LPS[MAXN];
void ComputeLPS(int N, int String[]) {
for (int i=2, Len=0; i<=N; ++i) {
while (Len && String[i] != String[Len+1])
Len = LPS[Len];
if (String[i] == String[Len+1]) ++ Len;
LPS[i] = Len;
}
}
std::ifstream In("reguli.in");
std::ofstream Out("reguli.out");
int N;
int V[MAXN];
void Citire() {
In >> N;
int X, Y; In >> X;
for (int i=1; i<N; ++i)
In >> Y,
V[i] = Y-X,
X = Y;
}
void Rezolvare() {
--N;
ComputeLPS(N, V);
int Ans = N - LPS[N];
Out << Ans << '\n';
for (int i=1; i<=Ans; ++i)
Out << V[i] << '\n' ;
}
int main()
{
Citire();
Rezolvare();
return 0;
}