Pagini recente » Cod sursa (job #1489320) | Cod sursa (job #741179) | Cod sursa (job #62090) | Cod sursa (job #3224740) | Cod sursa (job #2367551)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
const int N=500009;
int n,f[N];
long long v[N];
void buildfailure()
{
f[0]=f[1]=0;
int i=2,j=f[1];
for(;;)
{
if(i==n+1)
break;
if(v[i]==v[j+1])
{
f[i]=j+1;
j=f[i];
i++;
}
else
{
if(j)
j=f[j];
else
{
f[i]=j;
i++;
}
}
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
for(int i=2;i<=n;i++)
v[i-1]=v[i]-v[i-1];
n--;
buildfailure();
int ans=n-f[n];
fout<<ans<<'\n';
for(int i=1;i<=ans;i++)
fout<<v[i]<<'\n';
return 0;
}