好奇怪啊,我的代码在本机测试时才6ms,答案也全部正常
但是上传上去却超时报错,求大佬指点>︿<
#include <iostream>
#include <algorithm>
using namespace std;
bool IF(int a, int b, int arr0[], int arr1[], bool first = 0) // return 0 为 Alice 赢,默认 Alice 先手
{
sort(arr0, arr0 + a);
sort(arr1, arr1 + b);
if (arr0[a - 1] > arr1[b - 1])
{
return 0;
}
else if (arr0[a - 1] < arr1[b - 1])
{
return 1;
}
else
{
if (first == 0) // 判断先手,0 为 Alice,1 为 Bob
{
return 0;
}
else
{
return 1;
}
}
}
int main() {
int t, x = 0;
bool out[1000]{};
cin >> t;
for (int i = 0; i < t; i++)
{
// a = Alice 的牌数,b = Bob 的牌数;arr0 = Alice 的牌上数字,arr1 = Bob 的牌上数字
int a, b, arr0[50]{}, arr1[50]{};
// 数据写入
cin >> a;
for (int i = 0; i < a; i++)
{
cin >> arr0[i];
}
cin >> b;
for (int i = 0; i < b; i++)
{
cin >> arr1[i];
}
// Alice 先手
if (IF(a, b, arr0, arr1) == 0)
{
out[x] = 0; // Win
x++;
}
else
{
out[x] = 1;
x++;
}
// Bob 先手
if (IF(a, b, arr0, arr1, 1) == 0) // 将 先手 设定为 Bob
{
out[x] = 0;
x++;
}
else
{
out[x] = 1;
x++;
}
}
for (int q = 0; q < x; q++)
{
if (out[q] == 0)
{
cout << "Alice" << endl;
}
else
{
cout << "Bob" << endl;
}
}
return 0;
}