Cod sursa(job #2003496)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 22 iulie 2017 23:46:41
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#define VAL 500005
#define LL long long

using namespace std;

ifstream fin("reguli.in");
ofstream fout("reguli.out");

int N, i, j;
int FF[VAL], poz;
LL v[VAL], nr, P;

int main()
{
    fin >> N;
    for (i=1; i<=N; i++)
    {
        fin >> nr;
        if (i>1)
          v[i-1]=nr-P;
        P=nr;
    }
    for (i=2; i<N; i++)
    {
        poz=FF[i-1];
        while (poz!=0 && v[poz+1]!=v[i])
          poz=FF[poz];
        if (v[i]==v[poz+1])
          FF[i]=poz+1;
    }
    fout << N-1-FF[N-1] << '\n';
    for (i=1; i<=N-1-FF[N-1]; i++)
      fout << v[i] << '\n';
    fin.close();
    fout.close();
    return 0;
}