题解
2024-04-25 13:21:09
发布于:广东
25阅读
0回复
0点赞
这题也是贪心,排个序,把最便宜的一半买了就行
用read函数可以大幅度缩短输入时间
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int a[1000005];
int read(){//花里胡哨一波
char c = getchar();
int x = 0;
while(!isdigit(c)) c = getchar();
while(isdigit(c)){
x = x * 10 + c - '0';//本来是艾克斯左左三加左左一的,不想搞这么复杂
c = getchar();
}return x;
}
int main(){
int n = read();
for(int i = 1; i <= n; i++) a[i] = read();
sort(a + 1, a + n + 1);
int m = n / 2 + n % 2, ct = 0;//m是n的一半向上取整
for(int i = 1; i <= m; i++) ct += a[i];
printf("%d", ct);
return 0;
}
时间复杂度:
全部评论 1
不是为什么都抄官方的(
2024-04-25 来自 广东
0
有帮助,赞一个