Cod sursa(job #3321740)

Utilizator Luca_georgescuLuca Georgescu Luca_georgescu Data 11 noiembrie 2025 10:15:29
Problema Reguli Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("reguli.in");
ofstream g("reguli.out");

const int nmax=2e6+5;
int s[nmax],n;
int lps[nmax],a[nmax];

void create_lps(int n)
{
    int i=1, lg=0;
    lps[0]=0;

    while ( i<n )
    {
        if ( s[i]==s[lg] )
        {
            lg++;
            lps[i]=lg;
            i++;
        }
        else if ( lg ) lg=lps[lg-1];
        else
        {
            lps[i]=0;
            i++;
        }
    }
}

vector <int> rez;

int main()
{
    f >> n;
    for (int i=0; i<n; i++ )
        f >> a[i];

    for (int i=0; i<n-1; i++ )
        s[i]=a[i+1]-a[i];

    create_lps(n-1);

    int rez=(n-1)-lps[n-2];

    for (int i=0; i<rez; i++ )
        g << s[i] << " ";

    return 0;
}