# 題目: UVa 11136 - Hoax or what

# 題目說明

Mal-Wart 超市正在進行促銷,以下是說明

  • 客戶需將寫有電話的帳單存入抽獎箱
  • 每天結束時會選擇最貴及最便宜的帳單各一張,買最貴的人得到最貴與最便宜的差額
  • 抽獎完的帳單不會放回抽獎箱

INPUT:
每筆資料第一行為一個整數 n ,代表有 n
接下來會有 n 行,每行會有一個整數 k ,代表帳單的數量,接下來 k 個整數代表每個帳單的金額
n0 時結束程式


OUTPUT:
輸出超市總共要為這個促銷支出多少錢

# 解題方法

利用 multiset 自動排序,每次取頭與尾的帳單即為最大與最小,相減後累加至結果

由於測資的大小,結果需用 long long

# 參考程式碼

#include <iostream>
#include <set>
using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	int n, k, temp;
	unsigned long long total;
	multiset<int> bill;
	while (cin >> n && n) {
		total = 0;
		bill.clear();
		while (n--) {
			cin >> k;
			for (size_t i = 0; i < k; i++) cin >> temp, bill.emplace(temp);
			total += *bill.rbegin() - *bill.begin();
			bill.erase(bill.begin());
			auto it = bill.end();
			bill.erase(--it);
		}
		cout << total << "\n";
	}
	return 0;
}

# 參考資料

https://www.larrysprognotes.com/UVa%20-%2011136/