Pagini recente » Cod sursa (job #2085671) | Cod sursa (job #194876) | Cod sursa (job #2104798) | Cod sursa (job #594976) | Cod sursa (job #2786129)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("numarare.in");
ofstream fout("numarare.out");
int n, t, l, r, p[100005], v[100005];
long long ans;
int main() {
fin >> n;
for (int i=1;i<=n;i++){
fin >> v[i];
}
for (int i=1;i<n;i++){
v[i] = v[i + 1] - v[i];
}
for (int i=1;i<n;i++){
if (i > r){
t = 0;
}else{
t = min(r - i, p[l + r - i]);
}
while(i + t < n && v[i + t] == v[i - t])
t ++;
p[i] = t;
if (i + t > r){
r = i + t;
l = i - t;
}
ans += t;
}
fout << ans << '\n';
return 0;
}