set:自动去重排序
multiset:不去重,排序
#include <cstdio>
#include <set>
#include <iostream>
using namespace std;
int main()
{
//freopen("in.txt", "r", stdin);
multiset<int> muSet;
multiset<int>::iterator muSetIt; //迭代器,相当于一个指针
int m, n, x;
while (~scanf("%d", &n), n)
{
muSet.clear(); //清空
long long ans = 0; //注意超int
for (int i = 0; i < n; i++)
{
scanf("%d", &m);
for (int j = 0; j < m; j++)
{
scanf("%d", &x);
muSet.insert(x); //插入
}
muSetIt = muSet.end(); //指向最后元素的下一个位置(不是最后的元素)
muSetIt--; //向前移动,这是指向了最后一个元素
int Max = *muSetIt;
muSet.erase(muSetIt); //将这个最大的元素删除
muSetIt = muSet.begin(); //第一个元素,最小的
int Min = *muSetIt;
muSet.erase(muSetIt);
ans += Max - Min;
}
cout << ans << endl;
}
return 0;
}