Pagini recente » Cod sursa (job #3341858) | Cod sursa (job #3304795) | Cod sursa (job #3337586) | Cod sursa (job #3356494) | Cod sursa (job #3313382)
#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();
// for(int i:a)fout<<i<<" ";
// fout<<'\n';
// for(int i=0;i<a.size();i++)fout<<pi[i]<<" ";
// fout<<'\n';
for(int i=0;i<a.size();i++)
{
if(pi[i]>0)
{
fout<<i<<'\n';
for(int j=0;j<i;j++)fout<<a[j]<<"\n";
return 0;
}
}
}