首页 > 其他 > 详细

UVA 11136 Hoax or what (multiset)

时间:2014-05-23 08:10:35      阅读:362      评论:0      收藏:0      [点我收藏+]

题目大意:

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

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

问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)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!