Pagini recente » Cod sursa (job #1032550) | Cod sursa (job #2363092) | Cod sursa (job #158376) | Cod sursa (job #1550749) | Cod sursa (job #2312544)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("numarare.in");
ofstream g ("numarare.out");
const int nmax=3e5+3;
long long sol,v[nmax],d[nmax],k,n,c,r,mr,st,dr,sum;
int main()
{
ios::sync_with_stdio(false);
f>>k;
for(int i=1;i<=k;++i)
{
f>>v[++n];
v[n-1]-=v[n];
}
c=0;
r=0;
--n;
for(int i=1;i<=n;++i)
{
if(r>=i)
{
mr=2*c-i;
d[i]=min(d[mr],n-i+1);
}
d[i]=max(d[i],1ll);
st=i-d[i];
dr=i+d[i];
while(st>=1&&dr<=n&&v[st]==v[dr])
{
++d[i];
--st;
++dr;
}
sol+=d[i];
if(i+d[i]-1>r)
{
r=i+d[i]-1;
c=i;
}
}
g<<sol;
return 0;
}