高质量题解|A36700.商品降价
2026-01-30 14:33:18
发布于:北京
0阅读
0回复
0点赞
解题思路
与正常求和不同的是,这次的最大值要减半
我们先用cnt把所有的数加起来
再用big找到最大值,这里要设置成0(只要是 <= 0的就行,看题目)
在循环里面判断,如果这个数大于big,那么就把它赋值给big
循环结束后,我们就找到了最大值
最大值要减半,我们就/=2
因为我们是先加后减,所以cnt还要减去big
代码
#include <bits/stdc++.h>
using namespace std;
int a[1010];
int main(){
int n,cnt = 0;
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i];
}
int big = -1;
for(int i = 1;i <= n;i++){
cnt += a[i];
if(a[i] > big){
big = a[i];
continue;
}
}
big /= 2;
cout << cnt - big;
return 0;
}
这里空空如也







有帮助,赞一个