Cod sursa(job #2578975)

Utilizator driver71528@gmail.comTerec Andrei-Sorin [email protected] Data 11 martie 2020 19:52:05
Problema Reguli Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
typedef long long ll;
ifstream f("reguli.in");
ofstream g("reguli.out");
int pi[500001];
ll  x[500001];
ll n;
int main()
{
    int i,j;
    f>>n;
    for(int i=1;i<=n;i++)
        f>>x[i];
    ll a=x[1];
    for(i=2;i<=n;i++)
    {
        x[i-1]=x[i]-a;
        a=x[i];
    }
    n--;
    pi[1]=0;
    i=2;
    j=1;
    while(i<=n)
    {
        if(x[i]==x[j])
            pi[i++]=j++;
        else if(j!=1)
            j=pi[j-1]+1;
        else
            pi[i++]=0;
    }
    i=n;
    while(pi[i])
        i-=pi[i];
    g<<i<<'\n';
    for(j=1;j<=i;j++)
        g<<x[j]<<'\n';
    f.close();
    g.close();
    return 0;
}