Untitled

 avatar
unknown
plain_text
2 years ago
790 B
4
Indexable
#include<bits/stdc++.h>

using namespace std;

queue <pair<string, int> > q;
int n, c;
vector<string> v[30];
string litera, ch;
string cuv_final, str, str1;

int main()
{
 ifstream fin("expand.in");
 ofstream fout("expand.out");

 fin>>litera;
 fin>>cuv_final;
 fin>>n;

 for(int i=0; i<n; i++){
    fin>>ch>>str;
    v[ch[0]-'a'].push_back(str);
 }

 q.push({litera, 0});

 while(!q.empty()){
   pair<string, int> p=q.front();
   q.pop();
   c=p.second;
   str=p.first;
   if(str==cuv_final){
    break;
   }
   c++;

   for(int i=0; i<str.size(); i++){
       for(int j=0; j<v[str[i]].size(); j++){
            str1=str.substr(0, i)+v[str[i]][j]+str.substr(i+1, str.size()-i-2);
            q.push({str1, c});
       }
   }
 }
 //fout<<c;

}
Editor is loading...