#include<cstdio>
#include<algorithm>
using std::sort;
using std::unique;
const int N(1e5+5);
int a[N],T,n;
int main(){
bool ans,flag;
int i1;
for(scanf("%d",&T);T--;){
scanf("%d",&n);
for(i1=1;i1<=n;++i1){
scanf("%d",a+i1);
}
sort(a+1,a+n+1);
n=unique(a+1,a+n+1)-(a+1);
ans=true;flag=true;
for(i1=1;i1<=n;++i1){
if(a[i1]-a[i1-1]==1){
ans^=true;
}else{
printf(ans?"Alice\n":"Bob\n");
flag=false;break;
}
}
if(flag){
ans^=true;
printf(ans?"Alice\n":"Bob\n");
}
}
return 0;
}
自己一点问题都找不到。
时间复杂度应该没问题,就一个 sort 和 unique。