Pagini recente » Cod sursa (job #837295) | Cod sursa (job #1536960) | Cod sursa (job #422666) | Cod sursa (job #188750) | Cod sursa (job #2312534)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("numarare.in");
ofstream g ("numarare.out");
const int nmax=2e5+3;
int 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]=max(1,min(d[mr],n-i+1));
}
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;
}