Submission #916750

#TimeUsernameProblemLanguageResultExecution timeMemory
916750yellowtoadPalindromic Partitions (CEOI17_palindromic)C++17
100 / 100
215 ms28224 KiB
#include <iostream> #include <vector> using namespace std; const long long mod = (1LL<<41)-1; long long test, a[1000010], st, ed, r, lst, pos, sum, ans; string s, t; vector<string> v; int main() { cin >> test; a[0] = 1; for (int i = 1; i <= 1e6; i++) a[i] = (a[i-1]*26)%mod; while (test--) { cin >> s; st = ed = sum = ans = pos = 0; r = lst = s.length()-1; v.clear(); t = ""; for (int i = 0; i < s.length(); i++) { if (i >= r) { pos = i; break; } st = (st*26+s[i]-'A')%mod; (ed += (a[lst-r]*(s[r]-'A'))) %= mod; t += s[i]; if (st == ed) { v.push_back(t); sum += t.length(); t = ""; lst = r-1; st = ed = 0; } r--; } for (int i = 0; i < v.size(); i++) ans++; if (sum*2 != s.length()) ans++; for (int i = v.size()-1; i >= 0; i--) ans++; cout << ans << endl; } }

Compilation message (stderr)

palindromic.cpp: In function 'int main()':
palindromic.cpp:20:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |   for (int i = 0; i < s.length(); i++) {
      |                   ~~^~~~~~~~~~~~
palindromic.cpp:37:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |   for (int i = 0; i < v.size(); i++) ans++;
      |                   ~~^~~~~~~~~~
palindromic.cpp:38:13: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |   if (sum*2 != s.length()) ans++;
      |       ~~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...