关注
这个是我的代码, 也不知道怎么错. 同求高人指点.
#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;
}
查看原帖
点赞 评论
相关推荐
水中水之下水道的鼠鼠:团子吧,我看同学待到八点半拿完餐补走人,挺惬意的
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
22954次浏览 192人参与
# 机械人春招想让哪家公司来捞你? #
357624次浏览 3109人参与
# 为了求职,我做过的疯狂伪装 #
13433次浏览 271人参与
# 校招笔试 #
1102次浏览 34人参与
# 职场破冰,你们都聊什么? #
7790次浏览 79人参与
# 晒晒你的中秋福利 #
15615次浏览 119人参与
# 大家实习每天都在干啥 #
89293次浏览 518人参与
# 你的公司给实习生发中秋礼物吗 #
2251次浏览 31人参与
# 机械笔面试考察这些知识点 #
10699次浏览 96人参与
# bilibili求职进展汇总 #
91182次浏览 819人参与
# 工作压力大怎么缓解 #
105454次浏览 1053人参与
# 秋招OC许愿 #
347405次浏览 2531人参与
# 广联达求职进展汇总 #
11264次浏览 50人参与
# 机械人怎么评价今年的华为 #
209211次浏览 1525人参与
# 宣讲会你有哪些意向不到的收获 #
1715次浏览 23人参与
# 聊聊这家公司值得去吗 #
560847次浏览 3717人参与
# 你面试被问到过哪些不会的问题? #
23261次浏览 848人参与
# 百度秋招提前批进度 #
150969次浏览 1771人参与
# 电网笔面经互助 #
46979次浏览 431人参与
# 秋招的嫡长offer #
32748次浏览 298人参与