666
2025-11-01 19:56:40
发布于:浙江
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main() {
int N;
cin >> N;
// 使用multiset自动排序并允许重复元素
multiset<int> bills;
for (int day = 0; day < N; day++) {
int M;
cin >> M;
// 添加当天收到的账单
for (int i = 0; i < M; i++) {
int amount;
cin >> amount;
bills.insert(amount);
}
// 每天支付最小和最大的账单
if (!bills.empty()) {
auto min_it = bills.begin(); // 最小账单
auto max_it = prev(bills.end()); // 最大账单
int min_bill = *min_it;
int max_bill = *max_it;
// 输出当天支付的账单
cout << min_bill << " " << max_bill << endl;
// 从集合中移除已支付的账单
bills.erase(min_it);
// 重新获取最大账单的迭代器(因为集合可能发生变化)
if (!bills.empty()) {
max_it = prev(bills.end());
bills.erase(max_it);
}
}
}
return 0;
}
这里空空如也








有帮助,赞一个