#include<bits/stdc++.h>
#define int long long
using namespace std;
struct node
{
string u,v;
}a[15];
int n,t;
string x,y,t1,t2;
int bfs()
{
queue<string>s;queue<int>sum;
s.push(x);sum.push(0);
while(!s.empty())
{
if(s.front==y)return sum.front;
for(int i=1;i<=n;i++)
{
if(s.front.find(a[i].u)<s.front.size())
{
t2="";
for(int j=0;j<s.front.find(a[i].u);j++)t2+=s.front[j];
t2+=a[i].v;
for(int j=s.front.find(a[i].u)+a[i].u.size();j<s.front.size();j++)t2+=s.front[j];
if(sum.front+1<=10)s.push(t2),sum.push(sum.front+1);
}
}
s.pop();sum.pop();
}
return -1;
}
signed main()
{
cin>>x>>y;
while(cin>>t1>>t2)
a[++n]=(node){t1,t2};
t=bfs();
if(t==-1)cout<<"NO ANSWER!";
else cout<<t;
return 0;
}
为什么运行不了