Pagini recente » Cod sursa (job #1743413) | Cod sursa (job #630671) | Cod sursa (job #678011) | Cod sursa (job #45735) | Cod sursa (job #2061716)
#include <bits/stdc++.h>
#define NMAX 500005
#define ll long long
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int n;
int S[NMAX];
ll key[NMAX];
void kmp()
{
S[0] = -1, S[1] = 0;
for (int i = 2; i <= n; i++)
{
int prv = i - 1;
ll ch = key[i];
while (S[prv] != -1 && key[S[prv] + 1] != ch)
prv = S[prv];
S[i] = S[prv] + 1;
}
}
int main()
{
ll p, a;
fin >> n >> p;
n--;
for (int i = 1; i <= n; i++)
{
fin >> a;
key[i] = a - p;
p = a;
}
kmp();
int fn = n - S[n];
fout << fn << "\n";
for (int i = 1; i <= fn; i++)
fout << key[i] << "\n";
return 0;
}