Cod sursa(job #1609315)

Utilizator touristGennady Korotkevich tourist Data 22 februarie 2016 18:47:00
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#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;
}