Cod sursa(job #1809588)

Utilizator catalina200029Olteanu Catalina catalina200029 Data 19 noiembrie 2016 01:13:00
Problema Reguli Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

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

int v[500005],i,n,a,dif,b,j,mx,k,urm[500005];

int main()
{
f>>n>>a;
for (i=0;i<n-1;i++) {
    f>>b;
    v[i]=b-a;
    a=b;
}

--n;

/*for (i=0;i<n;i++)
    cout<<v[i]<<' ';
cout<<'\n';*/

for (i=2;i<=n;i++) {
    while (k && v[k]!=v[i-1])
        k=urm[k];
    if (v[k]==v[i-1])
        k++;
    urm[i]=k;
}

for (i=1;i<=n;i++)
    cout<<urm[i]<<' ';
//cout<<n;
n=n-urm[n];
g<<n<<'\n';
for (i=0;i<n;i++)
    g<<v[i]<<'\n';
    return 0;
}