Cod sursa(job #1423789)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 22 aprilie 2015 18:38:14
Problema Reguli Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>

using namespace std;

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

int n, i, k, a[500001], x[500001], poz[500001], ct;

int main()
{
    f >> n;
    for (i = 0; i < n; i++)
        f >> x[i];

    for (i = 1; i < n-1; i++)
    {
        while (ct && x[ct+1]-x[ct] != x[i+1]-x[i])
            ct = poz[ct];
        if (x[ct+1] - x[ct] == x[i+1]-x[i])
            ct++;
        poz[i] = ct;
    }
    for (i = 0; poz[i] == 0; i++)   k++, a[k] = x[i+1]-x[i];
    g << k << "\n";
    for (i = 1; i <= k; i++)
        g << a[i] << "\n";
    return 0;
}