Cod sursa(job #3253054)

Utilizator GabiRB1Rafael GabiRB1 Data 1 noiembrie 2024 08:38:20
Problema Reguli Scor 100
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");
long long pv[500005], v[500005], w[500005], nr;
int n, ct = 0;
void solve()
{
    f >> n;
    f >> v[0];
    w[0] = v[0];
    for(int i = 1; i < n; i ++)
        f >> nr, v[i] = nr - w[i - 1 - (i != 1)], w[i - 1] = nr;
    for(int i = 2; i < n; i ++)
    {
        int j = pv[i - 1];
        while(j > 0 && v[j + 1] != v[i])
            j = pv[j];
        if(v[j + 1] == v[i])
            j ++;
        pv[i] = j;
    }
    g << n - 1 - pv[n - 1] << "\n";
    for(int i = 1; i <= n - 1 -pv[n - 1]; i ++)
        g << v[i] << "\n";
}
int main()
{
    int t;
    t = 1;
    while(t --)
        solve();
    return 0;
}