Cod sursa(job #2431416)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 19 iunie 2019 13:10:20
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#define DIM 500010
using namespace std;

ifstream fin ("reguli.in");
ofstream fout ("reguli.out");
long long v[DIM],p[DIM],a[DIM];
int n,i,j,k,l;
int main (){

    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    for (i=1;i<n;i++)
        a[i] = v[i+1]-v[i];
    for (i=2;i<n;i++){
        while (l && a[i] != a[l+1])
            l = p[l];
        if (a[i] == a[l+1])
            l++;
        p[i] = l;
    }
    int x = n-1-p[n-1];
    fout<<x<<"\n";
    for (i=1;i<=x;i++)
        fout<<a[i]<<"\n";

    return 0;
}