关注
输出需要排序,给你个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
牛客热帖
更多
正在热议
更多
# 秋招报数:你投了多少家公司? #
13141次浏览 123人参与
# 我的租房踩坑经历 #
165710次浏览 1118人参与
# 小红书校招直播来了 #
77037次浏览 456人参与
# 上班摸鱼,你都在干些什么? #
2479次浏览 58人参与
# 深信服求职进展汇总 #
220723次浏览 1748人参与
# 秋招的嫡长offer #
11663次浏览 125人参与
# 你面试被问到过哪些不会的问题? #
7217次浏览 323人参与
# 电网笔面经互助 #
44671次浏览 425人参与
# 考研对你找工作产生了哪些影响? #
39562次浏览 226人参与
# 为什么国企只招应届生 #
196370次浏览 1209人参与
# 职场破冰,你们都聊什么? #
987次浏览 24人参与
# 聊聊这家公司值得去吗 #
535620次浏览 3580人参与
# 为了求职,我做过的疯狂伪装 #
2316次浏览 39人参与
# 机械笔面试考察这些知识点 #
8690次浏览 89人参与
# 当你面对裁员会如何? #
303397次浏览 2559人参与
# 我的第一份实习怎么找的 #
152009次浏览 1465人参与
# 实习生应该准时下班吗 #
278400次浏览 1560人参与
# 你觉得早上几点上班合适? #
80511次浏览 327人参与
# 嵌入式岗知多少 #
52441次浏览 522人参与
# 实习要如何选择和准备? #
112701次浏览 1429人参与
# 秋招最大的收获是什么? #
42426次浏览 348人参与