Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstdio>
- #include <cstdlib>
- #include <string>
- using namespace std;
- int turnAtoB(int cost, string A, string B, int ind){
- int out, out1, out2, temp;
- string A2 = A, A3 = A;
- if(A == B) out = cost;
- else {
- if(ind >= A.length()){
- int toInsert = B[ind]-'a'+1;
- A2.insert(ind, 1, B[ind]);
- out = turnAtoB(cost+toInsert, A2, B, ind);
- } else if(ind >= B.length()){
- int toDelete = A[ind]-'a'+1;
- A3.erase(ind, 1);
- out = turnAtoB(cost+toDelete, A3, B, ind);
- } else {
- if(A[ind] != B[ind]){
- int toInsert = B[ind]-'a'+1, toDelete = A[ind]-'a'+1;
- A2.insert(ind, 1, B[ind]);
- out1 = turnAtoB(cost+toInsert, A2, B, ind);
- A3.erase(ind, 1);
- out2 = turnAtoB(cost+toDelete, A3, B, ind);
- if(out1 > out2) out = out2;
- else out = out1;
- } else {
- out = turnAtoB(cost, A, B, ind+1);
- }
- }
- }
- return out;
- }
- int main() {
- string fname, A, B;
- cin >> fname;
- ifstream inputFile(fname.c_str());
- int t, cost = 0;
- inputFile >> t;
- for(int i = 0; i < t; i++){
- inputFile >> A;
- inputFile >> B;
- cost = turnAtoB(0, A, B, 0);
- cout << cost << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement