AC代码:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <queue>
#include <map>
using namespace std;
map<string,int> ma;
string s1,s2,s3;
int c;
int solve(){
ma.clear();
string str;
int cnt = 0;
while(1){
str = "";
for(int i = 0; i < c; i++){
str += s2[i];
str += s1[i];
}
cnt++;
if(ma[str])
break;
if(str == s3)
return cnt;
ma[str]++;
s1 = "";s2 = "";
for(int i = 0; i < c; i++)
s1 += str[i];
for(int i = c; i < 2*c; i++)
s2 += str[i];
}
return -1;
}
int main(){
int T,t = 1;
scanf("%d",&T);
while(T--){
scanf("%d",&c);
cin>>s1>>s2>>s3;
printf("%d %d\n",t++,solve());
}
return 0;
}