?? 2413.cpp
字號:
/* This Code is Submitted by wywcgs for Problem 2413 on 2006-11-18 at 13:34:34 */
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 256;
char tar[N];
int len;
bool go(char*);
int main()
{
int T, n;
char c1[N], c2[N];
scanf("%d", &T);
for(int t = 1; t <= T; t++) {
char s[2][N];
scanf("%d %s %s %s", &n, s[0], s[1], tar);
len = n*2; c1[len] = c2[len] = 0;
for(int i = 0; i < n; i++)
{ c1[i] = c2[i] = s[0][i]; c1[i+n] = c2[i+n] = s[1][i]; }
int step = -1;
for(int i = 0; true; i++) {
go(c1);
if(go(c2)) { step = 2*i+1; break; }
if(go(c2)) { step = 2*i+2; break; }
if(!strcmp(c1, c2)) break;
}
printf("%d %d\n", t, step);
}
return 0;
}
bool go(char* str)
{
char s[2][N];
for(int i = 0; i < len/2; i++) { s[1][i] = str[i]; s[0][i] = str[i+len/2]; }
for(int i = 0; i < len; i++) str[i] = s[i&1][i/2];
return !strcmp(tar, str);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -