Cod sursa(job #2289047)

Utilizator danin01Nastase Daniel danin01 Data 24 noiembrie 2018 10:44:33
Problema Reguli Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<bits/stdc++.h>
using namespace std;

ifstream f("reguli.in");
ofstream g("reguli.out");

long long P[500005],v[500005];

int n,a,b,k;

int main()
{

    f>>n>>a;

    for(int i=2;i<=n;++i)
    {
        f>>b;
        v[i-1]=b-a;
        a=b;
    }

    for(int i=2;i<n;++i)
    {
        for(;k!=0 && v[k+1]!=v[i];)k=P[k];
        if(v[k+1]==v[i])k++;
        P[i]=k;
    }

    g<<n-1-P[n-1]<<'\n';

    for(int i=1;i<=n-1-P[n-1];++i)
        g<<v[i]<<'\n';

    return 0;
}