#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k,ans=0;
cin>>n>>k;
while(n--)
{
int a;
cin>>a;
ans+=a&1;
}
if(ans&1) cout<<"Alice"<<'\n';
else cout<<"Bob";
return 0;
}
这个游戏是基于数学规则的,规则如下:
- 游戏中有
n
轮,每轮Alice和Bob都会得到一个数字a
。 - 如果在所有轮结束后,所有数字
a
的奇数和是奇数,则Alice获胜。 - 如果奇数和是偶数,则Bob获胜。
代码解释如下:
- 程序首先包含
<bits/stdc++.h>
这个头文件,它是一个GCC编译器特有的头文件,包含了C++标准库的几乎所有头文件。 - 使用
using namespace std;
声明,这使得程序中可以直接使用标准库中的名字,比如cin
和cout
,而不用加std::
前缀。 - 主函数
main
开始执行时,首先定义了整数变量n
、k
和ans
。其中n
是游戏的轮数,k
在代码中其实没有被使用,ans
用于累加所有轮中奇数的数量。 - 通过
cin
读入n
和k
的值,尽管k
没有被使用。 - 程序进入一个循环,该循环执行
n
次。每次循环中,读入一个整数a
,如果a
是奇数(a&1
的结果为真),则ans
的值增加1。 - 循环结束后,检查
ans
的奇偶性。如果ans
是奇数(ans&1
的结果为真),输出"Alice";否则输出"Bob"。 - 最后,程序返回0,表示正常退出。
根据这个程序,我们可以输出游戏的结果,根据输入的数字中奇数的数量,来判定Alice或Bob哪个是胜者。