#include #include #include #include #define MAX(a,b)(((a)>(b))?(a):(b)) #define MIN(a,b)(((a)<(b))?(a):(b)) #define MAX_N 100 using namespace std; char p[MAX_N]; char t[MAX_N]; char r[MAX_N]; int lp; int lt; int lr; char app[MAX_N]; int index=0; int ris; int lcs_ric(char p[], char t[] ,int m,int n){ if(m<=0 || n <=0) return 0; else{ if(p[m]==t[n]){ return 1+lcs_ric(p,t,m-1,n-1); } else{ return MAX(lcs_ric(p,t,m-1,n),lcs_ric(p,t,m,n-1)); } } } int main(){ ifstream fin("input.txt"); fin >> lp; fin >> lt; fin >> lr; //cout << "m: " << lp << " ,n: " << lt << " ,o: " << lr << endl; char c[MAX_N]; string ps=""; string ts=""; string rs=""; fin >> ps; fin >> ts; fin >> rs; /* cout << "c: " << ps << endl; cout << "c: " << ts << endl; cout << "c: " << rs << endl; */ for(int i=0;i<=ps.size();i++) p[i]=ps[i]; for(int i=0;i<=ts.size();i++) t[i]=ts[i]; for(int i=0;i<=rs.size();i++) r[i]=rs[i]; ris=lcs_ric(p,t,lp,lt); int ris2=lcs_ric(r,t,lr,lt); int risposta=0; if(ris