Submission #48013

#TimeUsernameProblemLanguageResultExecution timeMemory
48013E869120회문 (APIO14_palindrome)C++14
23 / 100
1093 ms68380 KiB
#include <iostream> #include <string> #include <vector> #include <map> #include <algorithm> using namespace std; bool pal(string S) { string T = S; reverse(T.begin(), T.end()); if (S == T) return true; return false; } string S; vector<long long>A; map<long long, long long>M; long long maxn = 0; long long rem[100009], power[100009], B = 331; void init() { power[0] = 1; for (int i = 1; i < 100009; i++) power[i] = power[i - 1] * B; for (int i = 1; i <= S.size(); i++) { rem[i] = rem[i - 1] * B; rem[i] += (S[i - 1] - 'a' + 1); } } long long hash_value(long long l, long long r) { return rem[r] - rem[l] * power[r - l]; } int main() { cin >> S; init(); for (int i = 0; i < S.size(); i++) { int L = i, R = i; while (L >= 0 && R < S.size()) { if (S[L] != S[R]) break; long long J = hash_value(L, R + 1); M[J] += (R - L + 1); A.push_back(J); L--; R++; } L = i; R = i + 1; while (L >= 0 && R < S.size()) { if (S[L] != S[R]) break; long long J = hash_value(L, R + 1); M[J] += (R - L + 1); A.push_back(J); L--; R++; } } for (int i = 0; i < A.size(); i++) maxn = max(maxn, M[A[i]]); cout << maxn << endl; return 0; }

Compilation message (stderr)

palindrome.cpp: In function 'void init()':
palindrome.cpp:19:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 1; i <= S.size(); i++) {
                  ~~^~~~~~~~~~~
palindrome.cpp: In function 'int main()':
palindrome.cpp:30:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < S.size(); i++) {
                  ~~^~~~~~~~~~
palindrome.cpp:32:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while (L >= 0 && R < S.size()) {
                    ~~^~~~~~~~~~
palindrome.cpp:39:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while (L >= 0 && R < S.size()) {
                    ~~^~~~~~~~~~
palindrome.cpp:46:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < A.size(); i++) maxn = max(maxn, M[A[i]]);
                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...