Cod sursa(job #2514931)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 27 decembrie 2019 13:20:38
Problema Reguli Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#define NMAX 50005
using namespace std;

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

int n, a[NMAX];
int p[NMAX];
int l;
int x, y;

int main()
{
    f>>n;
    f>>x;
    for(int i=1; i<n; i++){
        f>>y;
        a[i]=y-x;
        x=y;
    }
    n--;
    int k=0;
    for(int i=2; i<=n; i++){
        while(k && a[k+1]!=a[i])
            k=p[k];
        if(a[k+1] == a[i])
            k++;
        p[i] = k;
        if(p[i] == 0)
            l = i;
    }
    g<<l<<'\n';
    for(int i=1; i<=l; i++)
        g<<a[i]<<'\n';
    return 0;
}