Submission #47539

#TimeUsernameProblemLanguageResultExecution timeMemory
47539ngkan146Round words (IZhO13_rowords)C++11
12 / 100
60 ms32888 KiB
#include <bits/stdc++.h>
using namespace std;
string t[2], s[2];
int dp[4005][4005];
int main(){
    cin >> s[0] >> s[1];
    s[0] = '0' + s[0];
    s[1] = '0' + s[1];
    for(int i=1;i<s[0].size();i++){
        for(int j=1;j<s[1].size();j++){
            dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
            if (s[0][i] == s[1][j])
                dp[i][j] = max(dp[i][j], dp[i-1][j-1] + 1);
        }
    }
    int tmp = dp[s[0].size()-1][s[1].size()-1];
    s[0].erase(s[0].begin());
    s[1].erase(s[1].begin());
    s[0] = '0' + s[0];
    s[1] = '0' + s[1];
    s[0] += s[0];
    s[1] += s[1];
    //cerr << s[0] << '\n' << s[1] << '\n';
    for(int i=1;i<s[0].size();i++){
        for(int j=1;j<s[1].size();j++){
            dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
            if (s[0][i] == s[1][j])
                dp[i][j] = max(dp[i][j], dp[i-1][j-1] + 1);
        }
    }
    cout << dp[s[0].size()-1][s[1].size()-1] - tmp;
}

Compilation message (stderr)

rowords.cpp: In function 'int main()':
rowords.cpp:9:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=1;i<s[0].size();i++){
                 ~^~~~~~~~~~~~
rowords.cpp:10:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=1;j<s[1].size();j++){
                     ~^~~~~~~~~~~~
rowords.cpp:24:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=1;i<s[0].size();i++){
                 ~^~~~~~~~~~~~
rowords.cpp:25:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=1;j<s[1].size();j++){
                     ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...