设为首页 加入收藏

TOP

HDU 2275 multiset
2014-11-23 19:42:34 来源: 作者: 【 】 浏览:5
Tags:HDU 2275 multiset

题意:n个操作

Push 入容器

Pop弹出一个 满足<=该数的最大的数(若没有输出No Element!)

开始用set打了一遍wrong了,这里入容器的数是有重复的,所以用multiset

#include
#include
using namespace std;
multisetss;
multiset::iterator p,q;
int main(){
    int n,t; char c[5];
    while(~scanf("%d",&n)){
        ss.clear();
        while(n--){
            scanf("%s %d",c,&t);
            if(c[1]=='u')ss.insert(t);
            else {
				if(ss.size()==0 || *ss.begin() > t){printf("No Element!\n");continue;}
				ss.insert(t);
				q=ss.find(t);//返回第一个等于t的迭代器
				p=q;	p++;
				if(p!=ss.end() && *p==t)t=*p;
				else {p--;p--;t=*p;}
				printf("%d\n",t);
				ss.erase(p); ss.erase(q);
            }
        }
        printf("\n");
    }
    return 0;
}
/*
7
Push 2
Push 5
Pop 2
Pop 3
Pop 4
Pop 5
Pop 6

*/

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj 3693 Maximum repetition sub.. 下一篇hdu1875 畅通工程再续 (最小生成..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)
·MySQL下载与安装教程 (2025-12-26 13:21:26)
·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)