任务匹配(match)

题目描述

DAMON THRONE\text{DAMON THRONE}nn 名同学和 mm 个训练任务。

ii 名同学的能力值为 aia_i,第 jj 个训练任务的难度为 bjb_j

一名同学最多只能完成一个任务,一个任务也最多只能由一名同学完成。

如果某名同学的能力值不小于某个任务的难度,那么这名同学就可以完成这个任务。

也就是说,当:

aibja_i \ge b_j

时,同学 ii 可以完成任务 jj

现在请你安排同学完成任务,使完成的任务数量尽可能多。

如果有多种安排方案都能完成最多任务,请在这些方案中,使被安排同学的能力值总和尽可能小。

请输出:

  1. 最多可以完成多少个任务;
  2. 在完成任务数量最多的前提下,被安排同学能力值总和的最小值。

输入格式

第一行包含两个整数 n,mn,m,分别表示同学数量和任务数量。

第二行包含 nn 个整数:a1,a2,,ana_1,a_2,\ldots,a_n,表示每名同学的能力值。

第三行包含 mm 个整数:b1,b2,,bmb_1,b_2,\ldots,b_m,表示每个任务的难度。

输出格式

输出一行两个整数,分别表示最多完成的任务数量,以及在最多完成任务数量前提下,被安排同学能力值总和的最小值。

输入输出样例 #1

输入 #1

5 4
3 8 5 10 6
4 6 7 2

输出 #1

4 22

样例解释 #1

一种最优安排为:

  • 能力值为 33 的同学完成难度为 22 的任务;
  • 能力值为 88 的同学完成难度为 77 的任务。
  • 能力值为 55 的同学完成难度为 44 的任务;
  • 能力值为 66 的同学完成难度为 66 的任务;

最多可以完成 44 个任务,被安排同学能力值总和为:

3+5+6+8=223+5+6+8=22

可以证明这是最优的情况。

输入输出样例 #2

输入 #2

3 5
2 4 6
1 3 5 7 9

输出 #2

3 12

样例解释 #2

可以完成的任务最多为 33 个。

一种最优安排为:

  • 能力值为 22 的同学完成难度为 11 的任务;
  • 能力值为 44 的同学完成难度为 33 的任务;
  • 能力值为 66 的同学完成难度为 55 的任务。

被安排同学能力值总和为:

2+4+6=122+4+6=12

输入输出样例 #3

输入 #3

4 3
1 1 1 1
5 6 7

输出 #3

0 0

样例解释 #3

很明显,一个都完成不了。

数据范围与约定

对于所有测试数据,保证:

$$1 \le n,m \le 2\times 10^5,\quad 1 \le a_i,b_i \le 10^9 $$
测试点 分值 nn mm ai,bia_i,b_i 特殊性质
121\sim 2 1010 20\le 20 100\le 100
343\sim 4 2020 2000\le 2000 109\le 10^9 A\text{A}
565\sim 6 105\le 10^5 B\text{B}
787\sim 8 C\text{C}
9109\sim 10 3030 2×105\le 2\times 10^5

特殊性质 A\text{A}:保证输入的 aia_ibib_i 都已经按非递减顺序给出。

特殊性质 B\text{B}:保证 n=mn=m

特殊性质 C\text{C}:保证所有同学都能完成所有任务,即 minaimaxbj\min a_i \ge \max b_j