LA_3135优先队列

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
struct st
{
    int QNum,Period,time;
    bool operator < (const st& a) const{
     return time>a.time||(time==a.time&&QNum>a.QNum);
    }
};
int main()
{
    string s;
    priority_queue<st>pq;
    while(cin>>s&&s[0]!='#')
    {
        st item;
        scanf("%d%d",&item.QNum,&item.Period);
        item.time=item.Period;
        pq.push(item);
    }
    int k;
    cin>>k;
    while(k--)
    {
        st r=pq.top();
        pq.pop();
        printf("%d\n",r.QNum);
        r.time+=r.Period;
        pq.push(r);
    }
    return 0;
}

posted @ 2014-09-03 13:21  JarvisLau  阅读(135)  评论(0编辑  收藏  举报