Cod sursa(job #1708312)

Utilizator refugiatBoni Daniel Stefan refugiat Data 26 mai 2016 21:24:13
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("reguli.in");
ofstream so("reguli.out");
int d[500005],st[500005];
int main()
{
    int n;
    si>>n;
    int i;
    int a,b;
    si>>a;
    for(i=1;i<n;++i)
    {
        si>>b;
        d[i]=b-a;
        a=b;
    }
    int k=0;
    for(i=2;i<n;++i)
    {
        while(k&&d[i]!=d[k+1])
        {
            k=st[k];
        }
        if(d[i]==d[k+1])
        {
            k++;
        }
        st[i]=k;
    }
    n-=st[n-1]+1;
    so<<n<<'\n';
    for(i=1;i<=n;++i)
        so<<d[i]<<'\n';
    return 0;
}