Cod sursa(job #1013354)

Utilizator rares96cheseliRares Cheseli rares96cheseli Data 20 octombrie 2013 20:21:00
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<fstream>
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");

long long x[500005];
int pi[500005], aux, n;

int main()
{
    f>>n;
    for (int i=1; i<=n; ++i) f>>x[i];
    for(int i=2; i<=n; ++i)
        x[i-1]=x[i]-x[i-1];
    --n;
    for(int i=2; i<=n; ++i)
    {
        while(x[aux+1]!=x[i] && aux)
            aux=pi[aux];
        if (x[aux+1]==x[i]) ++aux;
        pi[i]=aux;
    }

    g<<n-pi[n]<<'\n';
    for (int i=1; i<=n-pi[n]; ++i)
        g<<x[i]<<'\n';
    return 0;
}