Pagini recente » Cod sursa (job #930493) | Cod sursa (job #105496) | Cod sursa (job #1009611) | Cod sursa (job #982937) | Cod sursa (job #1693828)
#include <iostream>
#include <fstream>
#define n s.size()-1
using namespace std;
ifstream f("pscpld.in"); ofstream g("pscpld.out");
string s;
char k;
int p=1;
long long nr;
int main()
{
getline(f,s);
if(s[0]==s[1]) p=2;
else
{
p=1;
nr=1;
}
k=s[1];
if(s[2]==k) p++;
else
{
nr+=(p*(p+1)/2);
p=1;
k=s[2];
}
if(p==1 && s[2]==s[0]) nr++;
for(int i=3;i<=n;++i)
{
if(s[i]==k) ++p;
else
{
k=s[i];
nr+=(p*(p+1)/2);
p=1;
while(s[i+p-1]==s[i-p-1])
{
p++;
}
while(s[i+p-1]==s[i-p-2])
{
p++;
}
if(p>1)
{
nr+=p;
p=1;
}
p=1;
}
}
g<<nr;
return 0;
}