POJ - 3087 Shuffle'm Up 暴力模拟
程序员文章站
2022-03-23 10:52:30
...
#include <iostream>
#include<cstdio>
#include<map>
using namespace std;
int main()
{
int l;
string S1,S2,S,s;
int T;
cin>>T;
for(int t=1; t<=T; t++)
{
cin>>l>>S1>>S2>>S;
int ans=0;
s=S1+S2;
map<string ,bool>mp;
while (true)
{
mp[s]=true;
for(int i=0;i<l;i++)
{
s[2*i]=S2[i];
s[2*i+1]=S1[i];
}
ans++;
if(s==S||mp[s]==true)break;
for(int i=0;i<l;i++)
{
S1[i]=s[i];
S2[i]=s[l+i];
}
}
if(mp[s]==true)printf("%d %d\n",t,-1);
else printf("%d %d\n",t,ans);
}
return 0;
}