POJ3087 Shuffle'm Up

来源:互联网 发布:数控车螺纹m24x1.5编程 编辑:程序博客网 时间:2024/04/28 19:19

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;}


0 0