⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2413.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 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 + -