Pagini recente » Cod sursa (job #134721) | Cod sursa (job #811794) | Cod sursa (job #2262995) | Cod sursa (job #1980344) | Cod sursa (job #2157122)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("numarare.in");
ofstream fout("numarare.out");
int n,s[200005],b[200005],sol;
int main()
{ fin>>n;
int i,ct=0,l,r,mid,sum=0;
s[++ct]=100001;
for(i=1;i<=n;++i)
{ ++ct;
fin>>s[ct];
s[++ct]=100001;
}
l=r=mid=1;
for(i=2;i<=ct;++i)
if(i%2)
{if(i>r)
{l=r=mid=i;
sum=s[i+1]+s[i-1];
}
else
{ b[i]=b[2*mid-i];
if(b[i]+i>=r)
{ b[i]=r-i;
mid=i;
if(mid%2)
sum=s[mid+1]+s[mid-1];
l=mid-b[i];
}
}
while( l-1>=1 && r+1<=ct && ( (s[l-1]+s[r+1])==sum || (l-1)%2 ) )
{ b[mid]++;
l--; r++;
}
}
for(i=1;i<=ct;++i)
sol+=b[i]/2;
fout<<sol;
return 0;
}