# 題目: 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/