关注
输出需要排序,给你个C++的代码,看最后排序的就好 #include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
class Bear {
public:
int capacity;
int hungry;
int num;
};
bool myGreater(const Bear &a, const Bear &b)
{
if (a.capacity > b.capacity)
return true;
return false;
}
bool myGreaterI(const Bear &a, const Bear &b)
{
if (a.num < b.num)
return true;
return false;
}
void printBear(const Bear &a)
{
cout << a.capacity << " " << a.hungry << endl;
}
int eat(vector<int> &v, Bear &a)
{
if (a.hungry <= 0)
return 0;
for (int i = v.size() - 1; i >= 0; i--)
{
if (v[i] <= a.hungry)
{
a.hungry = a.hungry - v[i];
v.erase(v.begin() + i);
eat(v, a);
return 0;
}
}
return 0;
}
int main()
{
int n, m;
while (cin >> n >> m)
{
vector<int> mm;//糖能填充的饥饿值
for (int i = 0; i < m; i++)
{
int temp;
cin >> temp;
mm.push_back(temp);
}
Bear *bb = new Bear[n];
for (int i = 0; i < n; i++)
{
cin >> bb[i].capacity >> bb[i].hungry;
bb[i].num = i;
}
sort(mm.begin(), mm.end(), less<int>());
sort(bb, bb + n, myGreater);
for (int i = 0; i < n; i++)
{
//for (int j = n - 1; j >= 0; j--)
{
//if
eat(mm, bb[i]);
}
}
sort(bb, bb + n, myGreaterI);
//for_each(bb, bb + n, printBear);
for (int i = 0; i < n; i++)
{
cout << bb[i].hungry << endl;
}
delete[] bb;
}
return 0;
}
查看原帖
点赞 2
相关推荐
06-21 01:03
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
24577次浏览 255人参与
# 你今年的平均薪资是多少? #
133881次浏览 685人参与
# 风评不好的公司,你会去吗? #
57793次浏览 418人参与
# 实习如何「偷」产出? #
48654次浏览 1270人参与
# 正在春招的你,也参与了去年秋招吗? #
312634次浏览 2528人参与
# 除了主业以外,你还有哪些其他收入? #
11465次浏览 197人参与
# 互联网公司评价 #
401127次浏览 3836人参与
# 你最满意的offer薪资是哪家公司? #
32994次浏览 176人参与
# 节后第一天上班,我的精神状态 #
13388次浏览 117人参与
# 不卡学历的大厂有哪些? #
27267次浏览 217人参与
# 校招阶段,学历VS技术哪个更重要? #
16733次浏览 182人参与
# 职场新人体验 #
24013次浏览 231人参与
# 签约/解约注意事项 #
696865次浏览 4068人参与
# 应届生初入职场,求建议 #
229692次浏览 2642人参与
# 你投递的公司有几家约面了? #
108787次浏览 778人参与
# 腾讯音乐求职进展汇总 #
97998次浏览 570人参与
# 校园里的破防时刻 #
10694次浏览 122人参与
# 硬件人求职现状 #
434477次浏览 4539人参与
# 正在实习的碎碎念 #
1454333次浏览 13469人参与
# 宁德时代求职进展汇总 #
122703次浏览 650人参与