#include #include using namespace std; const int MAXSIZE = 50; int bcount; int match[MAXSIZE]; struct vertex { string word; int indeg, outdeg; bool used; } lang1[MAXSIZE], lang2[MAXSIZE]; struct graph { bool edges[MAXSIZE][MAXSIZE]; vertex words[MAXSIZE]; int numV; } graph1, graph2; void initMatch(int n) { for(int i=0; i> n; while (n != 0) { bcount=0; initGraph(graph1); initGraph(graph2); for(int i=0; i> word1 >> word2; addEdge(word1, word2, graph1); } for(int i=0; i> word1 >> word2; addEdge(word1, word2, graph2); } initMatch(graph1.numV); if (findMatching(0,0,graph1.numV)) { for(int i=0; i> n; if(n>0) cout<