Cod sursa(job #3278369)

Utilizator Mihai_999Diaconeasa Mihai Mihai_999 Data 19 februarie 2025 16:32:05
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 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, pi[NMAX];
long long last, current, v[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;
}