#P1289. 撮合交易

撮合交易

题目描述

市场上正在交易一批西瓜,有 NN 个买家与 MM 个卖家。

第 ii 个买家,愿意以 BiB_i 或低于 BiB_i 的价格买进一只西瓜;

第 jj 个卖家,愿意以 SjS_j 或高于 SjS_j 的价格卖出一只西瓜。

你需要为西瓜标定一个指导价,所以交易都以指导价进行。指导价不能太高或太低,否则,愿意交易的人会变少。

请你设计一个指导价,使得可以撮合的交易数量达到最大,输出最大的交易数量。

输入格式

  • 第一行:两个整数表示 NN 与 MM
  • 第二行:NN 个整数表示 B1,B2,…,BNB_1,B_2,\dots,B_N
  • 第三行:MM 个整数表示 S1,S2,…,SMS_1,S_2,\dots,S_M

输出格式

3 4
10 20 30
15 35 5 25
2

样例解释 1

指导价在15元~20元时,可以撮合2笔交易

数据范围

  • 30%30\% 的数据,1≤N,M≤1001\leq N, M\leq 100
  • 60%60\% 的数据,1≤N,M≤20001\leq N, M\leq 2000,1≤Si≤20001\leq S_i\leq2000
  • 100%100\% 的数据,1≤N,M≤300,0001\leq N, M\leq 300,000
  • 1≤Si≤1091\leq S_i\leq 10^9
  • 1≤Bj≤1091\leq B_j\leq 10^9

来源

改编自 ABC312C Invisible Hand