BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #92691同步于 2017/3/30
ACM_ICPC机器人发帖

北邮OJ 205

lance6716
2017/3/30镜像同步0 回复
这个题一直wa……有什么要注意的点吗,我只注意到第一个新招进来的服务员与原来所有的服务员应该是同步扣美丽值的吧,以及最后一个输入实际上没有用 代码如下,因为一直用java,cpp那一套东西已经忘得差不多了,会不会写错了啥 ``` #include <iostream> #include <algorithm> #include <vector> #include <stdio.h> using namespace std; struct Waitress { int num; int older; int a; Waitress(int n1, int n2, int n3) : num(n1), older(n2), a(n3) {}; }; bool comp(Waitress & w1, Waitress & w2) { if (w1.older + w1.a > w2.older + w2.a) { return true; } else if (w1.older + w1.a == w2.older + w2.a) { return w1.num < w2.num; } return false; } int main() { int t; scanf("%d", &t); for (int i = 0; i < t; ++i) { int n, m, tmp; vector<Waitress> wvec, w2; wvec.reserve(100003); w2.reserve(100006); scanf("%d%d", &n, &m); for (int j = 0; j < n; ++j) { scanf("%d", &tmp); wvec.push_back(Waitress{j + 1, 0, tmp}); } for (int j = 0; j < m; ++j) { scanf("%d", &tmp); w2.push_back(Waitress{n + j + 1, j, tmp}); } make_heap(wvec.begin(), wvec.end(), comp); for (int j = 0; j < m; ++j) { printf("%d %d\n", wvec.front().num, wvec.front().older + wvec.front().a - j); pop_heap(wvec.begin(), wvec.end(), comp); wvec.pop_back(); wvec.push_back(w2[j]); push_heap(wvec.begin(), wvec.end(), comp); } } return 0; } ```
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。