| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
从测试结果来看,似乎只要在2 * n次操作之后仍不能达到目标,即可输出-1,无需判重。这个结论正确吗?#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
const int N = 2000 + 5;
int n, len;
char cards[N], tmp[N], goal[N];
int main()
{
int T;
scanf("%d", &T);
for (int kase = 1; kase <= T; kase++)
{
scanf("%d", &n);
scanf("%s", cards); scanf("%s", cards + n);
scanf("%s", goal);
len = n << 1;
bool flag = false;
for (int i = 1; i <= len; i++)
{
int pos = 0;
for (int j = 0, k = n; k < len; j++, k++)
tmp[pos++] = cards[k], tmp[pos++] = cards[j];
tmp[len] = '\0';
if (strcmp(tmp, goal) == 0)
{
flag = true;
printf("%d %d\n", kase, i);
break;
}
strcpy(cards, tmp);
}
if (!flag) printf("%d %d\n", kase, -1);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator