思路:首先明确,只要还有石子,那么一定能取
不妨设有两堆石子a1,a2,假设现在还有石子且无法取,那么有a1+a2≥0,a2<a1<0
①两不等式矛盾:两个负数相加必定不是非负数
②石子数不可能为负数
所以只要还有石子,就一定能取。问题就转换为两人轮流从一堆石子取一粒,谁先不能取谁输。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
# define loop i=1;i<=n;i++
int main()
{
int n, i;
cin >> n;
ll a,ans=0;
for (loop) {
cin >> a;
ans += a;
}
if (ans &1)cout << "Alice";/*n为奇数时,对应的二进制数最低位为1,n&1的结果就是1;
n为偶数时,相应的最低位为0,n & 1的结果就是0*/
else cout << "Bob";
return 0;
}