题目链接:https://cometoj.com/problem/1761 solution:考虑五个柱子、每次从最多的两个上面取一个环、注意:不能一次性取空,导致结果不正确; 最后只有可能还有一个柱子上面有环或者全空 如果arr[5]大于前四者之和、那么答案最多只能是前四者之和了 然后如果五者之和为偶数、答案为sum/2;为奇数,答案为(sum-1)/2 两种情况的代码都表示为sum/2
#include <bits/stdc++.h>
using namespace std
;
int main()
{
long long a
[5], sum
= 0;
for (int i
= 0; i
< 5; ++i
){
scanf("%lld", &a
[i
]);
sum
+= a
[i
];
}
sort(a
, a
+ 5);
if (a
[4] > a
[0] + a
[1] + a
[2] + a
[3])printf("%lld\n", a
[0] + a
[1] + a
[2] + a
[3]);
else printf("%lld\n", sum
/ 2);
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-53677.html