https://codeforces.com/problemset/problem/1472/D
题意:
Alice和Bob用一个长度为n的数组a玩游戏。Alice先手,每一次都可以从数组中选择任意元素。
如果Alice取得是偶数,则Alice得这个值,Bob得0分
如果Alice取得是奇数,则Bob得这个值,Alice得0分
判断谁赢啦或平局
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve()
{
int n;
cin >> n;
vector<int> v(n);
for (int i=0;i<n;i++)
{
cin >> v[i];
}
sort(v.rbegin(), v.rend());//从大到小
ll ans = 0;
for (int i = 0; i < n; i++)
{
if (i % 2 == 0) //Aice动,因为Aice先手
{
if (v[i] % 2 == 0)
ans += v[i];
}
else //Bob动
{
if (v[i] % 2 == 1)
ans -= v[i];
}
}
if (ans == 0)
{
cout << "Tie\n";
}
else if (ans > 0)
{
cout << "Alice\n";
} else
{
cout << "Bob\n";
}
}
int main()
{
int t;
cin >> t;
while (t--)
{
solve();
}
return 0;
}

浙公网安备 33010602011771号