Cod sursa(job #2061475)

Utilizator leraValeria lera Data 9 noiembrie 2017 12:29:29
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <iostream>
#include <fstream>
#define Nmax 500005
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
long long pi[Nmax],b[Nmax],N,x[Nmax],q;
int main()
{
    fin>>N;
    for(int i=1;i<=N;i++)fin>>x[i];
    for(int i=2;i<=N;i++)b[i-1]=x[i]-x[i-1];
    N--;
    for(int i=2;i<=N;i++)
    {
        while(q && b[q+1]!=b[i])q=pi[q];
        if(b[q+1]==b[i])q++;
        pi[i]=q;
    }
    fout<<N-pi[N]<<'\n';
    for(int i=1;i<=N-pi[N];i++)fout<<b[i]<<'\n';
    return 0;
}