Pagini recente » Cod sursa (job #1535420) | Cod sursa (job #105926) | Cod sursa (job #1429947) | Cod sursa (job #2100460) | Cod sursa (job #2355365)
#include <bits/stdc++.h>
#define NMAX 100005
using namespace std;
ifstream fin("numarare.in");
ofstream fout("numarare.out");
int N, v[NMAX], d[NMAX], L = 1, R = 1, len;
long long ans;
int main()
{
fin >> N;
for (int i = 1; i <= N; i++)
fin >> v[i];
if (N == 1)
{
fout << "0\n";
return 0;
}
for (int i = 2; i <= N; i++)
{
if (i > R)
len = 0;
else
len = min(d[L + R - i], R - i);
while (i - 1 - len > 0 && i + len <= N && v[i + len] + v[i - 1 - len] == v[i] + v[i - 1])
len++;
ans += len;
d[i] =len;
if (i + len > R)
{
R = i + len;
L = i - 1 - len;
}
}
fout << ans << "\n";
return 0;
}