码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 11136 Hoax or what (multiset)

时间:2014-05-23 08:11:38      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:class   blog   c   code   a   int   

题目大意:

超时进行促销,把账单放入一个箱子里

每次拿取数额最大的和最小的,给出 最大-最小  的钱。

问n天总共要给出多少钱。


思路分析:

multiset 上直接进行模拟

注意要使用long long 

而且multiset的删除要用 迭代器。


#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#include <set>
#define maxn 111111
using namespace std;

multiset<int>tab;
multiset<int>::iterator it;

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF && n)
    {
        tab.clear();

        long long ans=0;
        for(int i=0;i<n;i++)
        {
            int k;
            scanf("%d",&k);
            while(k--)
            {
                int a;
                scanf("%d",&a);
                tab.insert(a);
            }

            if(tab.size()==0)continue;
            it=tab.begin();
            int ans1=(*it);

            it=((tab.end()));
            it--;
            int ans2=(*it);

            ans+=(ans2-ans1);

            tab.erase(it);
            if(tab.size()>0)tab.erase(tab.begin());
        }
        printf("%lld\n",ans);
    }
    return 0;
}


UVA 11136 Hoax or what (multiset),布布扣,bubuko.com

UVA 11136 Hoax or what (multiset)

标签:class   blog   c   code   a   int   

原文地址:http://blog.csdn.net/u010709592/article/details/26282531

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!