Cod sursa(job #1800239)

Utilizator nicholascantarNicholas David Cantar Gogitidze nicholascantar Data 7 noiembrie 2016 16:47:13
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>

using namespace std;
int n,i,j,k,urm[500050];
long long x,y,v[500050];
int main()
{
    ifstream fin ("reguli.in");
    ofstream fout ("reguli.out");
    fin>>n>>x;
    for (i=2;i<=n;i++)
    {
        fin>>y;
        v[i-2]=y-x;
        x=y;
    }
    k=0;
    urm[1]=0;
    for (i=2;i<=n-1;i++)
    {
        while(k>0&&v[k]!=v[i-1]) k=urm[k];
        if(v[k]==v[i-1]) k++;
        urm[i]=k;
    }
    fout<<n-1-urm[n-1]<<'\n';
    for(i=0;i<n-1-urm[n-1];i++)
        fout<<v[i]<<'\n';
    return 0;
}