Pagini recente » Cod sursa (job #2487724) | Cod sursa (job #2377424) | Cod sursa (job #716779) | Cod sursa (job #1885672) | Cod sursa (job #1818492)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("pscpld.in");
ofstream fout("pscpld.out");
const int N = 2000010;
int n, m, i, a[N], mij, sim;
char s[N], v[N];
long long sol;
int main () {
fin >> (s + 1);
n = strlen(s + 1);
for (i = 1; i <= n; ++i) {
v[++m] = ' ';
v[++m] = s[i];
}
v[++m] = ' ';
for (i = 1; i <= m; ++i) {
/*if (i <= mij + a[mij] - 1) {
sim = (mij << 1) - i;
a[i] = min(a[sim], mij + a[mij] - i);
}*/
while (v[i + a[i]] && v[i + a[i]] == v[i - a[i]])
a[i]++;
/*if (i + a[i] > mij + a[mij])
mij = i;*/
sol += a[i] / 2;
}
fout << sol << "\n";
return 0;
}