【算法】贪心算法:合并果子
·


#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char** argv) {
int n;
int fruits[10000] = {0};//直接初始化全为0
int strength = 0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> fruits[i];
}
sort(fruits, fruits + n);
for(int i = 0; i < n-1; i++){
fruits[i+1] += fruits[i];
strength += fruits[i+1];
int j = i + 2, temp = fruits[i+1];
while(true){
if (fruits[j] > fruits[i+1] || j > n-1) {
break;
}
j++;
}
for(int k = i+1; k < j-1; k++){
fruits[k] = fruits[k+1];
}
fruits[j-1] = temp;
}
cout << strength << endl;
return 0;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)