Pagini recente » Cod sursa (job #1139582) | Cod sursa (job #2390855) | Cod sursa (job #592533) | Cod sursa (job #1233658) | Cod sursa (job #2999834)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pscpld.in");
ofstream fout("pscpld.out");
const int NMAX = 1e6;
string s;
int pal[2 * NMAX + 1];
int main() {
char ch;
while(fin >> ch) {
s.push_back('$');
s.push_back(ch);
}
s.push_back('$');
for(int i = 0; i < (int) s.size(); i++) {
while(i - pal[i] >= 0 && i + pal[i] < (int) s.size() && s[i - pal[i]] == s[i + pal[i]]) {
pal[i]++;
}
}
// cout << s << '\n';
// for(int i = 0; i < (int) s.size(); i++) {
// cout << pal[i];
// }
// cout << '\n';
long long ans = 0;
for(int i = 0; i < (int) s.size(); i++) {
ans += pal[i] / 2;
}
fout << ans << '\n';
return 0;
}