Cod sursa(job #2101384)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 7 ianuarie 2018 13:27:37
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;
ifstream fi("reguli.in");
ofstream fo("reguli.out");
const int NMAX=5*1e5+5;
int n,A[NMAX],S[NMAX],k,x,y;
int main()
{
    fi>>n;
    fi>>x;
    for(int i=1;i<n;i++)
    {
        y=x;
        fi>>x;
        A[i]=x-y;
    }
    n--;
    S[0]=-1;
    S[1]=0;
    k=0;
    for(int i=2;i<=n;i++)
    {
        while(k>0 && A[i]!=A[k+1])
            k=S[k];
        if(A[i]==A[k+1])
            k++;
        S[i]=k;
    }
    fo<<n-S[n]<<"\n";
    for(int i=1;i<=n-S[n];i++)
        fo<<A[i]<<"\n";
    fi.close();
    fo.close();
    return 0;
}