Untitled
meda
c_cpp
a year ago
1.0 kB
9
Indexable
#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;
template<class T>
void printff(vector<T>& v) {
for (auto k : v) cout << k << " ";
cout << endl;
}
void SOLVE() {
ll n, m, a, b, c; cin >> n >> m >> a >> b >> c;
string s, t; cin >> s >> t;
vector<vector<ll>> dp(n + 1, vector<ll>(m + 1, -1));
function<ll(int, int)> solve =[&] (int i, int j){
if(i == n) return a * (m - j);
if(j == m) return b * (n - i);
ll & ret = dp[i][j];
if(ret != -1) return ret;
ret = 1e15;
if(s[i] == t[j]){
return ret = solve(i + 1, j + 1);
}else{
ll option_1 = a + solve(i, j + 1);
ll option_2 = b + solve(i + 1, j);
ll option_3 = c + solve(i + 1, j + 1);
ret = min({option_1, option_2, option_3});
}
return ret;
};
cout << solve(0, 0) << endl;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int tc = 1; //cin >> tc;
while(tc--) SOLVE();
return 0;
}Editor is loading...
Leave a Comment