Cod sursa(job #2916437)

Utilizator raul41917raul rotar raul41917 Data 29 iulie 2022 18:21:10
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fi("reguli.in");
ofstream fo("reguli.out");
int N;
long d_Array[500005];
long LPS[500005];
void Solve(int N)
{
    int len=1;
    LPS[1]=1;
    int i=2;
    while(i<=N)
    {
        if(d_Array[i]==d_Array[len])
        {
            len++;
            LPS[i]=len;
            i++;
        }else
        {
            if(len==1)
            {
                LPS[i]=1;
                i++;
            }else
                len=LPS[len-1];
        }
    }
}
int main()
{
    fi>>N;
    long x;
    fi>>x;
    for(int i=2;i<=N;i++)
    {
        long y;
        fi>>y;
        d_Array[i-1]=y-x;
        x=y;
    }
    N--;
    Solve(N);
    N=N-LPS[N]+1;
    fo<<N<<"\n";
    for(int i=1;i<=N;i++)
        fo<<d_Array[i]<<"\n";
    return 0;
}