Cod sursa(job #467116)

Utilizator cont_de_testeCont Teste cont_de_teste Data 28 iunie 2010 11:51:40
Problema Numarare Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cassert>
#include <cstdio>

const int MAX_N = 100005;

int n;
int v[MAX_N];

int main() {
    assert(freopen("numarare.in", "r", stdin) != NULL);
    assert(freopen("numarare.out", "w", stdout) != NULL);

    assert(scanf("%d", &n) == 1);
    for (int i = 1; i <= n; ++i)
        assert(scanf("%d", &v[i]) == 1);

    long long sol = 0;
    for (int i = 1; i < n; ++i) {
        int left = i, right = i + 1;
        while (left > 1 && right < n && v[left - 1] + v[right + 1] == v[left] + v[right]) {
            --left;
            ++right;
        }
        sol += (right - left + 1) / 2;
    }

    printf("%lld\n", sol);
}