Cod sursa(job #2452129)

Utilizator StanCatalinStanCatalin StanCatalin Data 29 august 2019 17:42:29
Problema Numarare Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("numarare.in");
ofstream out("numarare.out");

const int dim = 100005;

int n,v[dim],h[2*dim+1],len[2*dim+1];
long long int ans = 0;

void Rezolva()
{
    int c = 0,r = 0;

    for (int i=1; i<=n; i+=2)
    {
        if (i > r)
        {
            c = i;
            r = i;
        }
        else
        {
            len[i] = min(r-i, len[2*c-i]);
        }

    /*    if (len[i] == 0)
        {
            len[i] = 1;
        }*/

        while (v[i - len[i] - 1] + v[i + len[i] + 1] == v[i-1] + v[i+1])
        {
            len[i] += 1;
        }

        ans += (long long int)((len[i] + 1)/2);

        if (i+len[i] > r)
        {
            r = i+len[i];
            c = i;
        }
    }
}

int main()
{
    in >> n;
    n = 2*n-1;
    for (int i=1; i<=n; i+=2)
    {
        in >> v[i];
    }
    Rezolva();
    out << ans;
    return 0;
}