Cod sursa(job #2219028)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 6 iulie 2018 21:23:15
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.48 kb
#include <fstream>
using namespace std;
ifstream f ("reguli.in");
ofstream g ("reguli.out");
const int nmax=5e5+3;
long long v[nmax],p[nmax],n,q,a,b;
int main()
{
    f>>n>>a;
    for(int i=1;i<n;++i)
    {
        f>>b;
        v[i]=b-a;
        a=b;
    }
    for(int i=2;i<n;++i)
    {
        while(q>0&&v[i]!=v[q+1]) q=p[q];
        if(v[i]==v[q+1]) ++q;
        p[i]=q;
    }
    g<<n-p[n-1]-1<<'\n';
    for(int i=1;i<n-p[n-1];++i) g<<v[i]<<'\n';
    return 0;
}