Submission #800562

#TimeUsernameProblemLanguageResultExecution timeMemory
800562fatherofnationRound words (IZhO13_rowords)C++14
24 / 100
2089 ms8400 KiB
#include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int longestCommonSubsequence(const string& word1, const string& word2) { int m = word1.length(); int n = word2.length(); vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0)); for (int i = 1; i <= m; ++i) { for (int j = 1; j <= n; ++j) { if (word1[i - 1] == word2[j - 1]) { dp[i][j] = dp[i - 1][j - 1] + 1; } else { dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); } } } return dp[m][n]; } vector<string> findRoundWords(const string& word) { int n = word.length(); vector<string> roundWords; for (int i = 0; i < n; ++i) { string rotatedWord = word.substr(i) + word.substr(0, i); roundWords.push_back(rotatedWord); } return roundWords; } int main() { string word1, word2; cin >> word1 >> word2; vector<string> roundWords = findRoundWords(word1); int maxLCS = 0; for (const string& roundWord : roundWords) { int lcs = longestCommonSubsequence(roundWord, word2); maxLCS = max(maxLCS, lcs); } cout << maxLCS << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...