Pagini recente » Cod sursa (job #1642420) | Cod sursa (job #2535058) | Cod sursa (job #2659385) | Cod sursa (job #1397399) | Cod sursa (job #1411350)
#include <fstream>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int N, lg;
long long x, last;
long long V[500005];
int pi[500005];
void prefix()
{
int k = 0;
pi[1] = 0;
for (int i = 2; i <= N; ++i)
{
while (k > 0 && V[k + 1] != V[i])
k = pi[k];
if (V[k + 1] == V[i])
++k;
pi[i] = k;
}
}
int main()
{
fin >> N;
fin >> last;
--N;
for (int i = 1; i <= N; ++i)
{
fin >> x;
V[i] = x - last;
last = x;
}
prefix();
lg = N - pi[N];
fout << lg << '\n';
for (int i = 1; i <= lg; ++i)
fout << V[i] << '\n';
fin.close();
fout.close();
return 0;
}