code如下,死循环不输出:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
string s1,s2;
int dist(string a,string b){
for(int i=0;i<a.size();i++){
if(a[i]!=b[i]){
if(i==a.size()-1){
return 1;
}
else{
char ch;
if(a[i]!='L'&&b[i]!='L'){
ch='L';
}
if(a[i]!='T'&&b[i]!='T'){
ch='T';
}
if(a[i]!='R'&&b[i]!='R'){
ch='R';
}
string t1="",t2="",t3="",t4="";
t1+=a[i],t2+=b[i],t3+=a[i],t4+=b[i];
for(int j=1;j<a.size();j++){
t1+=b[i];
t2+=a[i];
t3+=ch;
t4+=ch;
}
return min(dist(a,t1)+dist(b,t2)+1,dist(a,t3)+dist(b,t4)+n);
}
}
}
}
signed main(){
cin>>n>>s1>>s2;
cout<<dist(s1,s2);
return 0;
}