Pagini recente » Istoria paginii runda/simulare-cartita-48 | Cod sursa (job #2479956) | Cod sursa (job #948943) | Istoria paginii utilizator/emilia.ciobanu | Cod sursa (job #1609315)
#include <bits/stdc++.h>
#define Nmax 500005
using namespace std;
long long x[Nmax],a[Nmax];
int pi[Nmax],n;
inline void KMP()
{
int i,k=0;
for(i=2;i<=n;++i)
{
while(k && a[i]!=a[k+1]) k=pi[k];
if(a[k+1]==a[i]) ++k;
pi[i]=k;
}
}
int main()
{
int i;
ifstream cin("reguli.in");
ofstream cout("reguli.out");
cin>>n;
for(i=0;i<n;++i) cin>>x[i];
for(i=1;i<n;++i) a[i]=x[i]-x[i-1];
--n;
KMP();
cout<<n-pi[n]<<"\n";
for(i=1;i<=n-pi[n];++i) cout<<a[i]<<"\n";
return 0;
}