Descrição do título:
A e B dividem as maçãs em duas pilhas. A espera dividir as maçãs igualmente de acordo com suas regras de cálculo. Suas regras de cálculo são baseadas na adição binária e não planeja mover, 12+5=9 (1100+0101=9). As regras de cálculo de B são adição decimal, incluindo carregamento normal. B espera obter o máximo de maçãs quando A for satisfeito. Satisfazendo relutantemente a solicitação de A, produz -1.
int main() {
// 接收输入,其实在循环里可以直接计算,但为了代码单一片段单一功能,我放弃了。
int n;
vector<int> rVec;
cin >> n;
while (n)
{
n--;
int weight;
cin >> weight;
rVec.push_back(weight);
}
//题目说了苹果重量小于等于10000,先给10001,然后后面只要比他小就保存下来,最终得到最小的那个
int minWeight = 10001;
// aWeight bWeight 分别表示按照A 和 B的算法得出的重量。
int aWeight = 0, bWeight = 0;
//将所有苹果求和、求异或,并保留最小的重量
for (auto x : rVec)
{
aWeight ^= x;
bWeight += x;
minWeight = min(minWeight, x);
}