Cod sursa(job #1693824)
| Utilizator | Data | 23 aprilie 2016 22:28:32 | |
|---|---|---|---|
| Problema | PScPld | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#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];
for(int i=2;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++;
}
if(p>1)
{
nr+=p;
p=1;
}
p=1;
}
}
g<<nr;
return 0;
}
