Cod sursa(job #1609314)
| Utilizator | Data | 22 februarie 2016 18:46:17 | |
|---|---|---|---|
| Problema | Reguli | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <bits/stdc++.h>
#define Nmax 500005
using namespace std;
int x[Nmax],a[Nmax],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;
}
