Cod sursa(job #3163480)

Utilizator laura2020Moldovan Laura laura2020 Data 31 octombrie 2023 15:09:38
Problema Reguli Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("reguli.in");
ofstream fout("reguli.out");
vector<int> v,pi;

int main()
{
    int n,nr,ant,i,k;
    fin>>n>>ant;
    pi.resize(n+1);
    for(i=1;i<n;i++)
    {
        fin>>nr;
        v.push_back(nr-ant);
        ant=nr;
    }
    pi[0]=0;
    k=0;
    for(i=1;i<n-1;i++)
    {
        while(k!=0 && v[k]!=v[i])
            k=pi[k-1];
        if(v[k]==v[i])
            k++;
        pi[i]=k;
    }
    fout<<n-1-pi[n-2]<<'\n';
    for(i=0;i<n-1-pi[n-2];i++)
    {
        fout<<v[i]<<endl;
    }
    return 0;
}