用map来标记以前出现过的状态
#include <stdio.h>
#include <map>
#include <string.h>
#include <string>
using namespace std;
int main()
{
int t;
int cnt = 0;
scanf("%d", &t);
int c;
while(t--){
char s1[220],s2[220],s12[220],s[220];
map<string,int>Map;
scanf("%d", &c);
scanf("%s %s %s", s1, s2, s12);
cnt++;
bool flag = false;
int len;
int tt = 0;
while(1){
tt++;
len = 0;
for(int i = 0;i < c; i++){
s[len++] = s2[i];
s[len++] = s1[i];
}
s[len] = '\0';
if(strcmp(s,s12)==0){
flag = true;
break;
}
if(Map.find(s)!=Map.end()){
break;
}
Map[s] = 0;
for(int i = 0;i < c;i++){
s1[i] = s[i];
s2[i] = s[i+c];
}
}
if(flag){
printf("%d %d\n", cnt, tt);
}else {
printf("%d -1\n", cnt);
}
}
return 0;
}