Cod sursa(job #1304879)

Utilizator EpictetStamatin Cristian Epictet Data 29 decembrie 2014 13:18:08
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>
using namespace std;
ifstream fin ("reguli.in");
ofstream fout ("reguli.out");
long long N, k, V[500010], S[500010];

int main()
{
    fin >> N >> V[1];
    N--;
    for (int i = 2; i <= N + 1; i++) fin >> V[i];
    for (int i = 1; i <= N; i++) V[i] = V[i+1] - V[i];

    for (int i = 2; i <= N; i++)
    {
        if (k && V[k+1] != V[i]) k = S[k];
        if (V[k+1] == V[i]) k++;
        S[i] = k;
    }

    k = N - S[N];
    fout << k << '\n';
    for (int i = 1; i <= k; i++) fout << V[i] << '\n';
    fout.close();
    return 0;
}