Cod sursa(job #3278368)

Utilizator Mihai_999Diaconeasa Mihai Mihai_999 Data 19 februarie 2025 16:30:02
Problema Reguli Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#define nl '\n'

using namespace std;

ifstream fin("reguli.in");
ofstream fout("reguli.out");

const int NMAX = 5e5+5;

int n, last, current, v[NMAX], pi[NMAX];

int main()
{
    fin >> n >> last;
    n--;
    for (int i = 1; i <= n; i++)
    {
        fin >> current;
        v[i-1] = current-last;
        last = current;
    }
    int j = 0;
    for (int i = 1; i < n; i++)
    {
        while (j > 0 && v[i] != v[j])
            j = pi[j-1];
        if (v[i] == v[j])
            j++;
        pi[i] = j;
    }
    int p = n-pi[n-1];
    fout << p << nl;
    for (int i = 0; i < p; i++)
        fout << v[i] << nl;
    return 0;
}