Cod sursa(job #2304129)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 17 decembrie 2018 16:31:06
Problema Reguli Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
long long sol[500005],n,a,b,i,phi[500005],k,m,j,nr_sol;
int main()
{
    f>>n>>a;
    for(i=2;i<=n;i++)
    {
        f>>b;
        sol[i-2]=b-a;
        a=b;
    }
    phi[0]=0;
    for(i=1;i<n-1;i++)
    {
        k=phi[i-1];
        while(k>0 && sol[i]!=sol[k])
        {
            k=phi[k-1];
        }
        if(sol[i]==sol[k])
        {
            k++;
        }
        phi[i]=k;
    }
    m=n-1;
    nr_sol=m-phi[m-1];
    g<<nr_sol<<'\n';
    for(i=0;i<nr_sol;i++)
    {
        g<<sol[i]<<'\n';
    }
    return 0;
}