#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
struct node{
int id;
int next_time;
int numm; //这个是为了好算加的
friend bool operator < (const node n1, const node n2){
if(n1.next_time != n2.next_time) return n1.next_time > n2.next_time;
else
return n1.id > n2.id;
}
};
int main()
{
string str;
priority_queue <node> q;
while(cin >> str && str != "#"){
int id;
int num_time;
scanf("%d%d", &id, &num_time);
node input;
input.id = id;
input.next_time = num_time;
input.numm = num_time;
q.push(input);
}
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++){
node ouput;
ouput.id = q.top().id;
ouput.next_time = q.top().next_time + q.top().numm;
ouput.numm = q.top().numm;
q.pop();
cout << ouput.id << endl;
q.push(ouput);
}
return 0;
}
poj2051优先队列
最新推荐文章于 2021-07-19 12:47:42 发布