For this Question: Given two strings A and B, you can perform three types of moves:-
1. Insert an element at any position
2. Delete an element from any position
3. Replace any element.
Your task is to convert String A into String B in a minimum number of moves.First line of input contains the string A, next line contains the string B.

Constraints:-
1 <= |A|, |B| <= 1000

Note:- String will contain only lowercase English lettersPrint the minimum number of moves.Sample Input:-
geek
gseke

Sample Output:-
2

Explanation:-
replace s with e and delete the last element

Sample input:-
Newton
School

Sample Output:-
5, I have written this Solution Code: 
#include <bits/stdc++.h>


using namespace std;

#define MEM(a, b) memset(a, (b), sizeof(a))

#define FOREACH(it, l) for (auto it = l.begin(); it != l.end(); it++)

#define IN(A, B, C) assert( B <= A && A <= C)

#define MP make_pair
#define FOR(i,a) for(int i=0;i<a;i++)

#define FOR1(i,j,a) for(int i=j;i<a;i++)

#define EB emplace_back

#define INF (int)1e9

#define EPS 1e-9

#define PI 3.1415926535897932384626433832795
#define max1 1001
#define MOD 1000000007

#define read(type) readInt<type>()

#define out(x) cout<<x<<'\n'
#define out1(x) cout<<x<<" "
#define END cout<<'\n'
#define int long long
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(), (v).end()
void fast(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int solve(int n){
int cnt=0;
int p=sqrt(n);
for(int i=1;i<=p;i++){
    if(n%i==0){
        cnt++;
        if(i*i!=n){cnt++;}
    }

}
return cnt;
}

 int dp[max1][max1];
vector<int> v;
signed main(){
string a,b;
cin>>a>>b;
int m=a.length();
int n=b.length();

    for (int i = 0; i <= m; i++) {
        for (int j = 0; j <= n; j++) {

            if (i == 0)
                dp[i][j] = j; // Min. operations = j

            else if (j == 0)
                dp[i][j] = i; // Min. operations = i

            else if (a[i - 1] == b[j - 1])
                dp[i][j] = dp[i - 1][j - 1];

            else
                dp[i][j] = 1 + min(dp[i][j - 1],min(dp[i - 1][j],dp[i - 1][j - 1]));
        }
    }
    out(dp[m][n]);

}

, In this Programming Language: C++, Now tell me if this Code is compilable or not?