小 A 有一家花卉租赁公司,为各个企业提供花卉租赁服务。
小 A 培育了一种罕见的牡丹花,这种牡丹花的品质非常高,香飘数里,引来了一大批想要租赁的客户。小 A 有 N 盆高品质的牡丹花,有 M 个客户前来租赁。
由于这种牡丹过于罕见,为了让大家珍惜租赁的机会,也为了最大化自己的收益,小 A 规定:每个客户最多只能租赁一盆,且每个客户先报出自己愿意支付的租赁一盆牡丹的价格。
当小 A 收到了所有客户的租赁报价后,他会根据客户的报价最终决定一盆牡丹花的租赁金额。所有报价不低于小 A 最终定价的客户,都有可能租到一盆牡丹。
请你编程帮助小 A 计算出一盆牡丹的最终最低租赁金额,要使得小 A 的收益最大,且要让所有报价不低于小 A 定价的客户,都有可能租到一盆牡丹。
注意:由于租赁数量的限制,当出现多个客户出价相同时,可能会出现多个出价相同的客户中只有部分客户能租赁到的情况。比如:有 5 盆花, 6 个客户,客户出价均为 10,那么按照先来后到的顺序将花租赁给前 5 个客户,最大收益为 50 。
第一行输入 2 个整数 N 和 M,表示可以租赁牡丹花的盆数,以及客户的数量。
接下来的 M 行,每行包含一个客户愿意支付的租赁一盆牡丹的价格。
输出 2 个整数,第 1 个整数代表一盆牡丹最低租赁金额,第 2 个整数代表最大收益(即:租赁单价 \times 租赁数量)。
5 4 10 2 8 7
7 21
4 5 6 5 4 3 2
3 12
10 15 100 200 300 50 60 400 10 20 150 30 120 180 220 280 320
180 1260
小 A 有 5 盆牡丹花,有 4 个客户。客户愿意支付一盆花的价格分别为:10,2,8,7。
最终小 A 的报价为每盆花 7 元,共有 3 个客户可以租赁到牡丹,小 A 的最大收益为 7 \times 3 = 21 元。
对于 40\% 的数据,满足 1 \le N,M \le 20。
所有测试数据满足 1 \leq N, M \leq 1000,每个客户的报价是在 [1, 10^6] 范围内的整数。