Cod sursa(job #2453134)

Utilizator Savu_Stefan_CatalinSavu Stefan Catalin Savu_Stefan_Catalin Data 2 septembrie 2019 16:18:27
Problema Reguli Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("reguli.in");
ofstream out("reguli.out");
int n,c,i,c2,a[500001],b[500001],j,k,rez;
int main ()
{
in>>n;
in>>c;
for (i=1;i<n;++i)
{
    in>>c2;
    a[i]=c2-c;
    c=c2;
}
n--;
    k=1;
    for (j=2;j<=n;++j)
    {
        while (k!=1&&a[j]!=a[k]) k=b[k-1]+1;
        if (a[j]==a[k])
        {
            b[j]=k;
            k++;
        }
        else b[j]=0;
    }
    rez=n-b[n];
    out<<rez<<'\n';
    for (j=1;j<=rez;++j)
    {
            out<<a[j]<<'\n';
    }
            return 0;
}