#P1256. 看人下菜

看人下菜

题目描述

在一个狂热的粉丝团队里,有 NN 个人,每个人的情绪指数可以用一个整数衡量,其中第 ii 个人的情绪指数为 HiH_i。

经纪人希望将 MM 件商品卖给这些粉丝。其中第 jj 件商品的价值为 VjV_j。一般来说,这个商品就只能卖出 VjV_j 元,不过粉丝可以接受溢价。具体来说,如果一件商品的定价为 PP,溢价可以表示为 P−VjP-V_j,只要粉丝 ii 的情绪指数 Hi≥P−VjH_i\geq P-V_j,那么他就会掏出 PP 元购买这件商品。

请为每一件商品确定一个价格,使得在这个价格下,面向粉丝的销售金额达到最高,输出每件商品的最高销售金额。一件商品的销售金额是它的售价乘以它的销售量。

输入格式

  • 第一行:两个整数 NN 与 MM
  • 第二行:NN 个整数 H1,H2,…,HNH_1,H_2,\dots,H_N
  • 接下来 MM 行:每行一个整数表示 V1,…,VMV_1,\dots,V_M

输出格式

  • 共 MM 行:每行一个数表示一件商品的最高销售金额。
4 3
0 2 5 10
1
3
5
12
16
21

数据范围

  • 30%30\% 的数据,1≤N,M≤1,0001\leq N, M\leq 1,000
  • 60%60\% 的数据,1≤N,M≤20,0001\leq N, M\leq 20,000
  • 100%100\% 的数据,1≤N,M≤300,0001\leq N, M\leq 300,000
  • 0≤Vi≤1090\leq V_i\leq 10^9
  • 0≤Hj≤1090\leq H_j\leq 10^9

来源

改编自 ABC289G Shopping in AtCoder store