Cod sursa(job #1770437)

Utilizator CrystyAngelDinu Cristian CrystyAngel Data 4 octombrie 2016 13:27:29
Problema Reguli Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include <fstream>

using namespace std;

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

#define nmax 500100

int v[nmax];
int p[nmax];
int n,i,k;

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