Cod sursa(job #1704892)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 19 mai 2016 15:45:31
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>

using namespace std;

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

long long a[500005], dif[500005], maxim;
int prec[500005];
int n, i, j, q;

int main(){
    f >> n >> a[0];
    for (i = 1; i < n; i++){
        f >> a[i];
        dif[i] = a[i] - a[i-1];
    }
    for (i = 2; i < n; i++){
        while (q > 0 && dif[i] != dif[q+1])
            q = prec[q];
        if (dif[q+1] == dif[i])
            q++;
        prec[i] = q;
    }

    i = n-prec[n-1]-1;
    g << i << '\n';
    for (j = 1; j <= i; j++)
        g << dif[j] << "\n";
    return 0;
}