#include #include using namespace std; using i64 = long long; class range {private: struct I{int x;int operator*(){return x;}bool operator!=(I& lhs){return x> s >> t; vector> dp(n+1, vector(m+1, inf)); dp[0][0] = 0; for(int i : range(n+1)) { for(int j : range(m+1)) { if(i < n && j < m) { dp[i+1][j+1] = min(dp[i+1][j+1], dp[i][j] + (s[i]!=t[j])); } if(i < n) { dp[i+1][j] = min(dp[i+1][j], dp[i][j] + 1); } if(j < m) { dp[i][j+1] = min(dp[i][j+1], dp[i][j] + 1); } } } int res = dp[n][m]; printf("%d\n", res); return 0; }