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;
}