40512023-03-11 00:47:53zsomborRegexcpp17Hibás válasz 24/100126ms146172 KiB
#include <iostream>
#include <vector>
using namespace std;

string a, b;
int n, m, Mn;
vector <vector <int>> dp(3e3, vector <int>(3e3, 1e9));
vector <vector <int>> mn(3e3, vector <int>(3e3, 0));

void solve() {
    cin >> a >> b;
    n = a.size();
    m = b.size();
    a = "a" + a;
    b = "a" + b;
    dp[0][0] = n + m + 3;
    for (int i = 0; i <= n; i++) mn[i][0] = dp[0][0];
    for (int j = 0; j <= m; j++) mn[0][j] = dp[0][0];
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            Mn = min(mn[i - 1][j], mn[i][j - 1]);
            if (a[i] != b[j]) { mn[i][j] = Mn; continue; }
            dp[i][j] = Mn + 2;
            if (a[i - 1] == b[j - 1]) dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] - 1);
            if (i == n && j == m) dp[i][j] -= 3;
            mn[i][j] = min(Mn, dp[i][j]);
        }
    }
    cout << mn[n][m] << endl;
}

int main()
{
    int t;
    cin >> t;
    for (int i = 0; i < t; i++) solve();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva61ms142888 KiB
2Elfogadva50ms143368 KiB
subtask20/9
3Hibás válasz71ms143496 KiB
4Hibás válasz105ms143836 KiB
5Hibás válasz105ms143920 KiB
6Hibás válasz105ms144132 KiB
7Hibás válasz104ms144388 KiB
8Hibás válasz112ms144212 KiB
subtask311/11
9Elfogadva50ms144528 KiB
10Elfogadva48ms144616 KiB
11Elfogadva61ms144664 KiB
12Elfogadva50ms145032 KiB
13Elfogadva48ms144956 KiB
14Elfogadva61ms145084 KiB
subtask413/13
15Elfogadva50ms145296 KiB
16Elfogadva61ms145636 KiB
17Elfogadva61ms145588 KiB
18Elfogadva50ms145552 KiB
19Elfogadva48ms145896 KiB
20Elfogadva48ms145856 KiB
subtask50/24
21Elfogadva61ms145760 KiB
22Hibás válasz63ms145672 KiB
23Elfogadva50ms145824 KiB
24Hibás válasz61ms145776 KiB
25Hibás válasz48ms145796 KiB
26Hibás válasz61ms146048 KiB
subtask60/43
27Elfogadva74ms145900 KiB
28Hibás válasz97ms146028 KiB
29Hibás válasz97ms146104 KiB
30Hibás válasz126ms146172 KiB
31Hibás válasz79ms146168 KiB
32Hibás válasz108ms146172 KiB
33Hibás válasz126ms146172 KiB
34Hibás válasz101ms146112 KiB