hdu 1908

  题意:一个人有一个代号K和一个优先等级P,一共有4种操作,0:结束,1:新建一个人,代号为K,优先等级为P,2:输出优先等级最大的人的代码,并删除该人,3:输出优先等级最小的人的代码,并删除该人。

  用了C++ STL里的map容器,map容器有一个关键字,map容器自动按关键字排序。用map容器方便了好多呦~

#include<iostream>
#include<cstdio>
#include<map>
using namespace std;

map<int ,int> elem;
int main()
{
    int n;
    int k,p;
    while(scanf("%d",&n))
    {
        if(!n)  break;
        if(n==1)
        {
            scanf("%d%d",&k,&p);
            elem[p]=k;
        }
        if(n==2)
        {
            if(elem.empty())
                cout<<"0"<<endl;
            else
            {
                printf("%d
",elem.rbegin()->second);
                elem.erase(elem.find(elem.rbegin()->first));
            }
        }
        if(n==3)
        {
            if(elem.empty())
                cout<<"0"<<endl;
            else
            {
                printf("%d
",elem.begin()->second);
                elem.erase(elem.begin());
            }
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/yongren1zu/p/3288009.html