Pagini recente » Cod sursa (job #1488952) | Cod sursa (job #1976941) | Cod sursa (job #3158112) | Cod sursa (job #2039970) | Cod sursa (job #2312549)
#include <fstream>
using namespace std;
ifstream f ("numarare.in");
ofstream g ("numarare.out");
const int nmax=1e5+3;
int n,v[nmax],r,d[nmax],c;
long long sol;
int main()
{
f>>n;
for(int i=1;i<=n;++i)
{
f>>v[i];
v[i-1]=v[i]-v[i-1];
}
v[0]=2e9;
v[n]=-2e9;
sol=d[1]=c=r=1;
for(int i=2;i<n;++i)
{
if(i<=r) d[i]=min(d[2*c-i], r-i);
else d[i]=1;
while(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];
}
g<<sol;
return 0;
}