AcWing 4875. 整数游戏
原题链接
困难
作者:
DS_Tape
,
2023-03-19 16:20:38
,
所有人可见
,
阅读 27
首先先把a1减1,那问题就转换成了谁先把某一个数减成0
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int n;
int main(){
int T;
cin >> T;
while(cin >> n){
for(int i = 0; i < n; i++) cin >> a[i];
a[0]--;
if(!a[0]){
puts("Bob");
continue; //特判开局就死的情况
}
int min1 = -1, min2 = -1;//找到最小值和次小值就ok了
for(int i = 1; i < n; i++)
if(min1 == -1 || a[i] < a[min1])
min1 = i;
for(int i = 0; i < n; i++)
if((min2 == -1 || a[i] < a[min2]) && min2 != min1)
min2 = i;
if(a[min1] <= a[min2]) puts("Alice");
else puts("Bob");
}
return 0;
}