首页 > 代码库 > hdu 1908 Double Queue (map)
hdu 1908 Double Queue (map)
# include <stdio.h> # include <algorithm> # include <iostream> # include <string.h> # include <string> # include <map> using namespace std; int main() { map<int,int>q; map<int,int>::iterator p; int n,name,num; while(~scanf("%d",&n),n) { if(n==1) { scanf("%d%d",&name,&num); q.insert(pair<int,int>(num,name));///自动按num从小到大 } else if(n==3)///按num小的输出 { if(q.size()) { p=q.begin();///取第一个 printf("%d\n",p->second); q.erase(p);///删除 } else printf("0\n"); } else { if(q.size()) { printf("%d\n",q.rbegin()->second);///取最后一个 q.erase(q.find(q.rbegin()->first)); } else printf("0\n"); } } return 0; }
hdu 1908 Double Queue (map)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。