Submission #1094549

#TimeUsernameProblemLanguageResultExecution timeMemory
1094549raphaelpPalindromic Partitions (CEOI17_palindromic)C++14
100 / 100
200 ms12168 KiB
#include <bits/stdc++.h> using namespace std; int main() { int T; cin >> T; while (T--) { string S; cin >> S; int N = S.size() / 2; long long cur1 = 0, cur2 = 0; long long a = 832991340832991341, b = 934618349934618347, mult = 1; int last = -1; int nb = 0; for (int i = 0; i < N; i++) { cur1 = ((__int128_t)cur1 * a + S[i]) % b; cur2 = (cur2 + (__int128_t)mult * S[S.size() - i - 1]) % b; mult = ((__int128_t)mult * a) % b; if (cur1 == cur2) { last = i; cur1 = 0, cur2 = 0, mult = 1; nb += 2; } } if (S.size() % 2 || last < N - 1) nb++; cout << nb << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...