等了好久才解决的题,还是看了别人代码的,优先队列

来源:互联网 发布:淘宝女童鞋品牌大全 编辑:程序博客网 时间:2024/05/01 21:38

银行服务

#include <cstdio>
#include <string.h>
#include <queue>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
    priority_queue<pair<int,string> >que;//优先队列第一次用
   int n, time;
   int ct, lv, help = -5, tail = 99999; //help是用来保证时间的
   string name;
   cin>>n>>time;


   while (n--){
        cin>>ct>>lv>>name;
        while (ct - help > 0 && help < time )
        {
            help+=5;
            if (!que.empty()){
                cout<<que.top().second<<endl;
                que.pop();
            }
        }


        tail--;
        que.push(make_pair(lv*100000+tail,name));//lv*100000保证以lv为主导,而tail是为了区分同一等级,同一时间到达的人;


   }


   while (!que.empty() && help < time )
   {
        cout<<que.top().second<<endl;
        que.pop();
         help+=5;
   }
    return 0;
}



还有make_pair使用方法的链接http://blog.csdn.net/hiwoshixiaoyu/article/details/53894162

0 0