Cod sursa(job #2061468)

Utilizator leraValeria lera Data 9 noiembrie 2017 12:20:23
Problema Reguli Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
#define Nmax 200005

using namespace std;

ifstream fin("reguli.in");
ofstream fout("reguli.out");
long long n , a[Nmax], s[Nmax], b[Nmax], k;
int main()
{
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> a[i];
    for(int i = 2; i <= n; i++)
        b[i - 1] = a[i] - a[i - 1];
    s[1] = 0;
    k = 0;
    for(int i = 2; i <= n - 1; i++)
    {
        if(k && b[i] != b[k + 1])k = s[k];
        if(b[i] == b[k + 1]) k++;
        s[i] = k ;
    }
    n--;
    fout << n - s[n] << '\n';
    for(int i = 1; i <= n - s[n]; i++)fout << b[i] << '\n';
    return 0;
}