Cod sursa(job #2125222)

Utilizator alexilasiAlex Ilasi alexilasi Data 8 februarie 2018 11:29:46
Problema Reguli Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("reguli.in");
ofstream fout("reguli.out");

int n,x,i,y,k,nr;

int v[500100],pi[500100];

int main()
{
    fin>>n>>x;n--;
    for(i=1;i<=n;i++)
    {
        fin>>y;
        v[i]=y-x;
        x=y;
    }
    for(i=2;i<=n;i++)
    {
        while(k>0&&v[k+1]!=v[i])k=pi[k];
        if(v[k+1]==v[i])k++;
        pi[i]=k;
    }
    nr=pi[n];
    i=n;
    while(pi[i]==nr&&i>1){nr--;i--;}
    i++;
    fout<<i<<'\n';
    for(k=1;k<=i;k++)fout<<v[k]<<'\n';
    return 0;
}