Cod sursa(job #2661679)

Utilizator darisavuSavu Daria darisavu Data 22 octombrie 2020 15:33:20
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <fstream>

using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
long long a[500005],x,y,n,k,urm[500005],i;
int main()
{
    f>>n;
    f>>x;
    for(i=2;i<=n;i++)
    {
        f>>y;
        a[i-1]=y-x;
        x=y;
    }
    for(i=2;i<=n;i++)
    {
        while(k>0&&a[k+1]!=a[i]) k=urm[k];
        if(a[k+1]==a[i]) k++;
        urm[i]=k;
    }
    g<<n-urm[n-1]-1<<'\n';
    for(i=1;i<n-urm[n-1];i++) g<<a[i]<<'\n';
    return 0;
}