08220420

STL之集合

输入1删除第(n+1)/2个元素,输入0插入元素

#include<iostream>
#include 
<set>
using namespace std;
multiset
<int>se1, se2;

int main() {
    
int n, x, t;
    
while (scanf("%d"&n) != EOF) {
        se1.clear();
        se2.clear();
        t 
= 0;
        
while (n--) {
            scanf(
"%d"&x);
            
if (x) {
                
if (t == 0)printf("No Element!\n");
                
else {
                    
if (t & 1) {
                        printf(
"%d\n"*se2.begin());
                        se2.erase(se2.begin());
                    } 
else {
                        printf(
"%d\n"*--se1.end());
                        se1.erase(
--se1.end());
                    }
                    t
--;
                }
            } 
else {
                scanf(
"%d"&x);
                
if (x >= *se2.begin()) {
                    se2.insert(x);
                    
if (se2.size() - se1.size() == 2) {
                        se1.insert(
*se2.begin());
                        se2.erase(se2.begin());
                    }
                } 
else {
                    se1.insert(x);
                    
if (se1.size() > se2.size()) {
                        se2.insert(
*--se1.end());
                        se1.erase(
--se1.end());
                    }
                }
                t
++;
            }
        }
        printf(
"\n");
    }
}

活用stl还是比较重要的

posted on 2010-03-20 20:46 hxyoung 阅读(85) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜