关注
输出需要排序,给你个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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 三月的小目标 #
58708次浏览 860人参与
# 你上一次加班是什么时候? #
137816次浏览 761人参与
# 滴滴笔试 #
34950次浏览 198人参与
# 2025秋招体验点评 #
99906次浏览 754人参与
# 美团笔试 #
702193次浏览 4673人参与
# 你遇到过哪些神仙同事 #
133895次浏览 763人参与
# AI岗位暴涨12倍,你会转AI赛道吗? #
6110次浏览 115人参与
# 米哈游笔试 #
556884次浏览 1105人参与
# 金三银四,你的春招进行到哪个阶段了? #
18788次浏览 255人参与
# 今天你投了哪些公司? #
171596次浏览 2986人参与
# 27届实习投递记录 #
1140次浏览 24人参与
# vivo笔试 #
13236次浏览 123人参与
# 小米编程考试 #
32212次浏览 152人参与
# 你感受到金三银四了嘛? #
80229次浏览 665人参与
# 字节7000实习来了,你投了吗? #
5306次浏览 26人参与
# 虽然0面试,但今天___,夸夸自己 #
10366次浏览 192人参与
# 文科生还参加今年的春招吗 #
13784次浏览 100人参与
# 职场上哪些行为很加分? #
337272次浏览 3721人参与
# AI项目实战 #
7634次浏览 371人参与
# 实习学不到东西正常吗? #
8913次浏览 192人参与
