Pagini recente » Cod sursa (job #47752) | Cod sursa (job #134821) | Cod sursa (job #2795110) | Cod sursa (job #2722712) | Cod sursa (job #2411542)
#include <fstream>
using namespace std;
ifstream cin ("numarare.in");
ofstream cout ("numarare.out");
int n;
long long sol;
int v[100005], dp[100005];
int main() {
cin >> n;
for(int i = 1; i <= n; i++)
cin >> v[i];
int l = 0, r = 0, lg;
for(int i = 1; i <= n; i++) {
if(i > r)
lg = 0;
else
lg = min(dp[l + r - i], r - i);
while(i + lg < n && i > lg && v[i - lg] + v[i + lg + 1] == v[i] + v[i + 1])
lg++;
dp[i] = lg--;
if(i + lg + 1 > r) {
r = i + lg + 1;
l = i - lg;
}
sol += lg + 1;
}
cout << sol;
return 0;
}