Pagini recente » Cod sursa (job #191918) | Cod sursa (job #2147489) | Cod sursa (job #3204185) | Cod sursa (job #87612) | Cod sursa (job #1435538)
#include<fstream>
#include<string>
#include<vector>
using namespace std;
ifstream cin("pscpld.in");
ofstream cout("pscpld.out");
const int N=1000003;
string s;
vector<int> d1(N), d2(N);
int i,n;
long long Rs;
int main()
{
cin>>s; n=s.size();
for (i=0;i<n;i++){
d1[i]=1;
while (i-d1[i]>=0 && i+d1[i]<n && s[i-d1[i]]==s[i+d1[i]])d1[i]++;
if (i>0 && s[i-1]==s[i]){
d2[i]=1;
while (i-d2[i]-1>=0 && i+d2[i]<n && s[i-d2[i]-1]==s[i+d2[i]])d2[i]++;
}
Rs+=d1[i]+d2[i];
}
cout<<Rs;
return 0;
}