Pagini recente » Cod sursa (job #1729283) | Cod sursa (job #2442884) | Cod sursa (job #584258) | Cod sursa (job #144329) | Cod sursa (job #3313388)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
const int NMAX=5*1e5+5;
long long x[NMAX];
long long pi[NMAX];
vector<long long>a;
void precalculate()
{
int m=a.size();
for(int j=0,i=1;i<m;i++)
{
while (j>0 && a[i]!=a[j])j=pi[j-1];
if(a[i]==a[j])j++;
pi[i]=j;
}
}
int main()
{
int n;
fin>>n;
for(int i=0;i<n;i++)
{
fin>>x[i];
if(i>=1)
a.push_back(x[i]-x[i-1]);
}
precalculate();
int L=a.size()-1;
if(L==0){fout<<0;return 0;}
int prefix=pi[L-1];
int k=L-prefix;
{fout<<k<<'\n';for(int i=0;i<k;i++)fout<<a[i]<<'\n';}
}