Submission #1166095

#TimeUsernameProblemLanguageResultExecution timeMemory
1166095JelalTkmPalindromes (APIO14_palindrome)C++20
23 / 100
1097 ms19308 KiB
#include <bits/stdc++.h> #pragma GCC optimize ("O3") #pragma GCC target ("sse4") using namespace std; #define int long long int const int N = 1e5 + 10; const int md = 1e9 + 7; const int INF = 1e18; int32_t main(int32_t argc, char *argv[]) { ios::sync_with_stdio(false); cin.tie(nullptr); int T = 1; // cin >> T; while (T--) { string s; cin >> s; int n = (int) s.size(); s = '#' + s; vector<vector<bool>> dp(n + 1, vector<bool> (n + 1)); map<string, int> mp; int ans = 0; for (int i = 1; i <= n; i++) { dp[i][i] = 1; string c = ""; c += s[i]; mp[c]++; ans = max(ans, mp[c]); for (int j = i - 1; j >= 1; j--) { c = s[j] + c; if (j == i - 1) { if (s[j] == s[i]) { int cnt = (++mp[c]); dp[j][i] = 1; ans = max(ans, cnt * 2); } } else if (s[i] == s[j] && dp[j + 1][i - 1]) { int cnt = (++mp[c]); dp[j][i] = 1; ans = max(ans, (i - j + 1) * cnt); } } } cout << ans << '\n'; } return 0; }
#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...