1372:小明的账单
【题目描述】
小明在一次聚会中,不慎遗失了自己的钱包,在接下来的日子,面对小明的将是一系列的补卡手续和堆积的账单… 在小明的百般恳求下,老板最终同意延缓账单的支付时间。可老板又提出,必须从目前还没有支付的所有账单中选出面额最大和最小的两张,并把他们付清。还没有支付的账单会被保留到下一天。 请你帮他计算出支付的顺序。
【输入】
第1行:一个正整数N(N≤15,000),表示小明补办银联卡总共的天数。
第2行到第N+1 行:每一行描述一天中收到的帐单。先是一个非负整数M≤100,表示当天收到的账单数,后跟M个正整数(都小于1,000,000,000),表示每张帐单的面额。
输入数据保证每天都可以支付两张帐单。
【输出】
输出共N 行,每行两个用空格分隔的整数,分别表示当天支付的面额最小和最大的支票的面额。
【输入样例】
4 3 3 6 5 2 8 2 3 7 1 7 0
【输出样例】
3 6 2 8 1 7 5 7
#include <bits/stdc++.h> using namespace std; int main() { // freopen("1.txt", "r", stdin); int n, m, t; scanf("%d", &n); multiset<int> a; for (int i = 0; i < n; i++) { scanf("%d", &m); for (int i = 0; i < m; i++) { scanf("%d", &t); a.insert(t); } printf("%d %d\n", *(a.begin()), *(--a.end())); a.erase(a.begin()); a.erase(--a.end()); } return 0; }