//
// main.cpp
// uva 11136 - Hoax or what---优先队列
//
// Created by XD on 15/9/5.
// Copyright (c) 2015年 XD. All rights reserved.
//
#include <iostream>
#include <string>
#include <queue>
#include <stack>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<vector>
#include <string.h>
#include <string>
#include <algorithm>
#include <set>
#include <map>
#include <cstdio>
using namespace std ;
int flag[1000000+10] ;
int main(int argc, const char * argv[]) {
int n , k ,d;
priority_queue<int , vector<int> , greater<int > > que1 ;
priority_queue<int , vector<int> , less<int > > que2 ;
while (scanf("%d",&n)==1 && n!=0) {
while (!que1.empty()) {
que1.pop() ;
}
while (!que2.empty()) {
que2.pop() ;
}
memset(flag, 0, sizeof(flag)) ;
long long ans = 0 ;int large =0,low=0 ;
for (int i = 0 ; i < n ; i++) {
scanf("%d",&k) ;
for (int j = 0; j < k ; ++j) {
scanf("%d" ,&d) ;
flag[d]++ ;
que1.push(d) ; que2.push(d) ;
}
while (flag[que1.top()] == 0 ) {
que1.pop() ;
}
flag[que1.top()]-- ;
large = que1.top() ; que1.pop() ;
while (flag[que2.top()] == 0 ) {
que2.pop() ;
}
flag[que2.top()]-- ;
low = que2.top() ; que2.pop() ;
ans += abs(large -low) ;
}
printf("%lld\n",ans) ;
}
return 0;
}
uva ---11136 Hoax or what--优先队列即可
最新推荐文章于 2019-03-28 08:56:34 发布