https://www.luogu.com.cn/record/52062064
#include <iostream>
using namespace std;
int n, i = 0, ans = 0x3f3f3f3f;
string tran1[10], tran2[10], s ,t;
void dfs(string now, int deep){
if(now == s){
ans = min(ans, deep);
return;
}
for(int i = 0; i < 6; i++){
if(now.find(tran1[i]) != string::npos){
string _now = now;
now.replace(now.find(tran1[i]), now.find(tran1[i]) + tran1[i].size(), tran2[i]);
dfs(now, deep + 1);
now = _now;
}
}
}
int main(){
cin >> t >> s;
while(cin >> tran1[i] >> tran2[i]){
i++;
}
dfs(t, 0);
if(ans == 0x3f3f3f3f){
cout << "NO ANSWER!" << endl;
}else{
cout << ans << endl;
}
return 0;
}