关注
这个是我的代码, 也不知道怎么错. 同求高人指点.
#include <iostream> #include <algorithm> #include <set> #include <vector> #include <stack> #include <set> #include <list> #include <bitset> #include <cstring> using namespace std; struct Bear { int fight; int hungry;
}; int find_h(vector<Bear>& bears) { int i = 0; int h = -1; int idx = -1; while (i < bears.size()) { if (bears[i].hungry <= 0) {
i++; continue;
} if (h < bears[i].hungry) {
h = bears[i].hungry;
idx = i;
}
i++;
} return idx;
} void bear_eat(vector<Bear> &bears, int idx, vector<int>& suguars) { for (int i = suguars.size() - 1; i >= 0; i--) { if (suguars[i] == -1) continue; else if( suguars[i] > bears[idx].hungry) continue; else {
bears[idx].hungry -= suguars[i];
suguars[i] = -1; break;
}
}
} bool can_eat(vector<Bear> &bears, vector<int> &suguars) { vector<int> hs; for (int i = 0; i < bears.size(); i++) { if (bears[i].hungry > 0) {
hs.push_back(bears[i].hungry);
}
} for (int i = 0; i < suguars.size(); i++) { if (suguars[i] > 0) for (auto& h: hs) if (suguars[i] <= h) return true;
} return false;
} void hdl(vector<Bear>& bears, vector<int>& suguars) {
sort(suguars.begin(), suguars.end()); while (can_eat(bears, suguars)) { int most_h = find_h(bears); if (most_h == -1) break;
bear_eat(bears, most_h, suguars);
}
} int main() { int n, m;
cin >> n >> m; vector<int> suguars; for (int i = 0; i < m; i++) { int tmp;
cin >> tmp;
suguars.push_back(tmp);
} vector<Bear> bears; for (int i = 0; i < n; i++) { int f = 0, h = 0;
cin >> f >> h;
bears.push_back({f, h});
}
hdl(bears, suguars); for (int i = 0; i < bears.size() - 1; i++)
cout << bears[i].hungry << endl;
cout << bears[bears.size() - 1].hungry; return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
161553次浏览 2731人参与
# 长城汽车工作体验 #
12540次浏览 16人参与
# 牛客2025仙途报告 #
150次浏览 3人参与
# 你面试体验感最差/最好的公司 #
10621次浏览 184人参与
# 大家实习每天都在干啥 #
105724次浏览 569人参与
# 总结:哪家公司面试体验感最差 #
83046次浏览 387人参与
# 比亚迪工作体验 #
72471次浏览 274人参与
# 一人说一个提前实习的好处 #
6370次浏览 123人参与
# 秋招落幕,你是He or Be #
6397次浏览 145人参与
# 重来一次,你会对开始求职的自己说 #
4491次浏览 117人参与
# 实习没事做是福还是祸? #
10980次浏览 180人参与
# 今年你最想重开的一场面试是? #
2144次浏览 34人参与
# 团建是“福利”还是是 “渡劫” #
5404次浏览 131人参与
# 你小心翼翼的闯过多大的祸? #
9049次浏览 130人参与
# 运营来爆料 #
71495次浏览 450人参与
# 长鑫存储求职进展汇总 #
52039次浏览 240人参与
# 招聘要求与实际实习内容不符怎么办 #
144009次浏览 869人参与
# 工作中听到最受打击的一句话 #
3954次浏览 81人参与
# 如何排解工作中的焦虑 #
246202次浏览 2268人参与
# 大厂VS公务员你怎么选 #
72851次浏览 666人参与
