Pagini recente » Cod sursa (job #2300355) | Cod sursa (job #3140685) | Cod sursa (job #1010957) | Cod sursa (job #858357) | Cod sursa (job #3313384)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
const int NMAX=5*1e5+5;
int x[NMAX];
int pi[NMAX];
vector<int>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=1;i<=n;i++)
{
fin>>x[i];
if(i>=2)
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;
if((L)%k==0){fout<<k<<'\n';for(int i=0;i<k;i++)fout<<a[i]<<'\n';} else {fout<<L<<'\n';for(int i=0;i<L;i++)fout<<a[i]<<'\n';}
}