poj3481(map的使用)Double Queue
//题意:维护一个集合,操作有1:加入一个元素,2:删除最大元素,3:删除最小元素。
//map默认按key从小到大排序
#include<cstdio>
#include<iostream>
#include<map>
using namespace std;
map<int,int> mp;
map<int,int>::iterator it;
int main()
{
int a,b,x;
while(~scanf("%d",&x)&&x)
{
if(x==1)
{
scanf("%d%d",&a,&b);
mp[b]=a;
}
if(x==2)
{
if(!mp.size())
{
puts("0");
continue;
}
it=mp.end();
--it;
printf("%d\n",it->second);
mp.erase(it);
}
if(x==3)
{
if(!mp.size())
{
puts("0");
continue;
}
it=mp.begin();
printf("%d\n",it->second);
mp.erase(it);
}
}
return 0;
}
还没有评论,来说两句吧...