167292025-05-11 15:57:09TaxiradioRegexcpp17Elfogadva 100/100221ms39616 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

const int lim = 2000000000;

int main() {
	int t;cin >> t; 
    while(t--){
        string a , b; cin >> a >> b;
        int n = a.size() , m = b.size();
        vector<vector<int>> dp1(n+2 , vector<int>(m+2 , lim)) , dp2(n+2 , vector<int>(m+2 , lim));
        dp1[1][1] = 0;
        dp2[1][1] = 3;
        for(int i = 1; i < n+2; i++){
            for(int j = 1; j < m+2; j++){
                dp2[i][j] = min(min(min(dp1[i-1][j]+4 , dp1[i][j-1]+4) , min(dp2[i-1][j]+1 , dp2[i][j-1]+1)), dp2[i][j]);
                dp1[i][j] = min(dp2[i][j] , dp1[i][j]);
                if(i != 1 && j!=1 && a[i-2] == b[j-2]){
                    dp1[i][j] = min(dp1[i-1][j-1]+1 , dp1[i][j]);
                }
            }
        }
        cout << dp1.back().back() << "\n";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask29/9
3Elfogadva37ms24360 KiB
4Elfogadva160ms29580 KiB
5Elfogadva143ms34640 KiB
6Elfogadva143ms23588 KiB
7Elfogadva211ms34660 KiB
8Elfogadva160ms33048 KiB
subtask311/11
9Elfogadva1ms500 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms500 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms316 KiB
14Elfogadva1ms316 KiB
subtask413/13
15Elfogadva1ms316 KiB
16Elfogadva1ms500 KiB
17Elfogadva1ms508 KiB
18Elfogadva1ms508 KiB
19Elfogadva1ms316 KiB
20Elfogadva1ms316 KiB
subtask524/24
21Elfogadva1ms756 KiB
22Elfogadva2ms820 KiB
23Elfogadva2ms756 KiB
24Elfogadva2ms756 KiB
25Elfogadva2ms564 KiB
26Elfogadva2ms820 KiB
subtask643/43
27Elfogadva39ms27400 KiB
28Elfogadva180ms30504 KiB
29Elfogadva165ms38164 KiB
30Elfogadva221ms39616 KiB
31Elfogadva101ms17204 KiB
32Elfogadva127ms28724 KiB
33Elfogadva197ms33316 KiB
34Elfogadva197ms39108 KiB