Pagini recente » Cod sursa (job #2922198) | Cod sursa (job #2036137) | Cod sursa (job #3224805) | Cod sursa (job #1133728) | Cod sursa (job #3246235)
#include <bits/stdc++.h>
const std :: string FILENAME = "reguli";
std :: ifstream f (FILENAME + ".in");
std :: ofstream g (FILENAME + ".out");
const int NMAX = 5e5 + 5;
int n;
long long x;
long long last;
long long a[NMAX];
int pi[NMAX];
void prefix()
{
for(int i = 1; i < n; i ++)
{
int j = pi[i - 1];
while(j > 0 && a[j] != a[i])
{
j = pi[j - 1];
}
if(a[j] == a[i])
{
j ++;
}
pi[i] = j;
}
}
int main()
{
f >> n;
f >> last;
for(int i = 1; i < n; i ++)
{
f >> x;
a[i - 1] = x - last;
last = x;
}
n --;
prefix();
rest = pi[n - 1];
n -= pi[n - 1];
prefix();
g << n - pi[n - 1] << '\n';
for(int i = 0; i < n - pi[n - 1]; i ++)
{
g << a[i] << '\n';
}
return 0;
}