关注
这个是我的代码, 也不知道怎么错. 同求高人指点.
#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;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
14189次浏览 168人参与
# 你最讨厌面试被问什么 #
1415次浏览 26人参与
# 牛客AI体验站 #
17891次浏览 303人参与
# 有转正机会的小厂实习值得去吗? #
800次浏览 20人参与
# 牛友们,签完三方你在忙什么? #
137428次浏览 994人参与
# 担心入职之后被发现很菜怎么办 #
282563次浏览 1186人参与
# 如何缓解入职前的焦虑 #
258927次浏览 1452人参与
# 校招第一份工作你干了多久? #
139433次浏览 609人参与
# 去年的flag与今年的小目标 #
34356次浏览 337人参与
# 牛客租房专区 #
151738次浏览 1491人参与
# 秋招开始捡漏了吗 #
229505次浏览 1044人参与
# 九月了,是考研还是就业? #
89383次浏览 557人参与
# 秋招投递攻略 #
268834次浏览 2554人参与
# 这份实习,有没有动摇过你的职业方向? #
2295次浏览 40人参与
# 搜狐工作体验 #
4123次浏览 30人参与
# 机械人求职现状 #
33671次浏览 297人参与
# 我是XXX,请攻击我最薄弱的地方 #
61815次浏览 410人参与
# 用友工作体验 #
18102次浏览 151人参与
# 你的工资什么时候发? #
57536次浏览 355人参与
# 你的实习什么时候入职 #
348140次浏览 2291人参与
