且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

uva 11136 Hoax or what

更新时间:2022-08-19 22:48:10

点击打开链接uva 11136

思路: STL
分析:
1 题目意思比较不好理解,理解了题目之后我们可以利用STL的multiset来做
2 每次找到最大和最小的值,然后求解即可

代码:

#include<set>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

long long n , num , k , ans;
long long minNum , maxNum;
multiset<long long>s;

int main(){
    while(scanf("%lld" , &n) && n){
        ans = 0;
        s.clear();
        for(int i = 0 ; i < n ; i++){
            scanf("%lld" , &k); 
            for(int j = 0 ; j < k ; j++){
                scanf("%lld" , &num);     
                s.insert(num);
            }
            if(s.size() > 0){
                multiset<long long>::iterator it;
                it = s.begin();
                minNum = *it;          
                it = s.end();
                it--; 
                maxNum = *it; 
                s.erase(it);
                if(s.size() > 0){ 
                    it = s.begin(); 
                    s.erase(it); 
                } 
                ans += maxNum - minNum; 
            } 
        } 
        printf("%lld\n" , ans); 
    } 
    return 0;
}