Pagini recente » Cod sursa (job #705687) | Cod sursa (job #2460261) | Cod sursa (job #2709282) | Cod sursa (job #165427) | Cod sursa (job #2525516)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("numarare.in");
ofstream fout("numarare.out");
int v[200005],d[200005],n,r,c;
long long sol;
int main(){
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i];
v[i-1]-=v[i];
}
for(int i=1;i<n;i++)
{
int poz=c*2-i;
if(i<=r)
d[i]=min(d[poz],r-i+1);
while(i-d[i]>=1 && i+d[i]<n && v[i-d[i]]==v[i+d[i]])
d[i]++;
if(i+d[i]-1>r)
{
c=i;
r=i+d[i]-1;
}
sol+=d[i];
}
fout<<sol<<'\n';
return 0;
}