#include #include #include #include #include #include using namespace std; bool search(const vector> &repls,const string &target,string from,int depth){ if(from==target)return true; if(depth<=0)return false; int i,j,r,l; const int fromlen=from.size(),nrepls=repls.size(); for(i=0;i "<> &repls,const string &target,string from){ int i,r,j,l; int depth; const int fromlen=from.size(),nrepls=repls.size(); for(depth=0;from!=target;depth++){ for(i=0;i> repls; while(true){ getline(in,line); if(line.size()==0){ getline(in,target); break; } if(!in)break; a=line.find(' '); b=line.find(' ',a+1); // repls.emplace_back(line.substr(0,a),line.substr(b+1)); repls.emplace_back(line.substr(b+1),line.substr(0,a)); //reversed } // repls={{"H","HO"},{"H","OH"},{"O","HH"},{"e","O"},{"e","H"}}; // repls={{"HO","H"},{"OH","H"},{"HH","O"},{"O","e"},{"H","e"}}; //reversed // target="HOHOHO"; //for(const pair &p : repls)cout<<"repl: "< "<