Cod sursa(job #988666)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 23 august 2013 16:29:31
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
using namespace std;

const int NMAX = 500003;

int PI[NMAX], V[NMAX];

int main () {

    freopen ("reguli.in", "r", stdin);
    freopen ("reguli.out", "w", stdout);
    int N, i, f, a, k = 0;
    scanf ("%d%d%d", &N, &f, &a);
    --N;
    V[1] = a - f;
    f = a;
    for (i = 2; i <= N; ++i) {
        scanf ("%d", &a);
        V[i] = a - f;
        f = a;
        while (k && V[k + 1] != V[i])
            k = PI[k];
        if (V[k + 1] == V[i])
            ++k;
        PI[i] = k;
    }
    a = N - PI[N];
    printf ("%d\n", a);
    for (i = 1; i <= a; ++i)
        printf ("%d\n", V[i]);
}