Pagini recente » Cod sursa (job #672171) | Cod sursa (job #163215) | Cod sursa (job #303021) | Cod sursa (job #446806) | Cod sursa (job #3163542)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define ll long long
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int n;
vector<ll> a;
vector<ll> dif;
vector<ll> pi;
int main()
{
fin >> n;
a.resize(n);
dif.resize(n-1);
pi.resize(n-1);
for(int i = 0; i < n; i++)
{
fin >> a[i];
if(i > 0)
dif[i-1] = a[i]-a[i-1];
}
int k = 0;
pi[0] = 0;
for(int i = 1; i < n-1; i++)
{
while(k != 0 && dif[k] != dif[i])
k = pi[k-1];
if(dif[i] == dif[k])
k++;
pi[i] = k;
}
int len = n-1-pi[n-2];
fout << len << "\n";
for(int i = 0; i < len; i++)
fout << dif[i] << "\n";
return 0;
}