UVa 11136 Hoax or what(multiset 应用)

multiset和set用法基本一样,区别是相同键值可以存在多个元素。


代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#include <set>
#define LL long long
multiset <int > G;
int main(){
	int N;
	while(~scanf("%d",&N)){
		if(!N) break;
		G.clear();
		LL res=0;
		for(int i=0;i<N;i++){
			int k;
			scanf("%d",&k);
			for(int j=0;j<k;j++){
				int t;
				scanf("%d",&t);
				G.insert(t);
			}
			res+=*(--G.end())-*G.begin();
			G.erase(--G.end());
			G.erase(G.begin());
		}
		printf("%lld\n",res);
	}
	return 0;
}

你可能感兴趣的:(multiset)