站外题求解
  • 板块灌水区
  • 楼主steamdream
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/27 15:30
  • 上次更新2024/8/27 17:56:25
查看原帖
站外题求解
1042546
steamdream楼主2024/8/27 15:30

题目描述路上有 k 个粮仓,分别位于 p[i] 位置,每个粮仓保存了 a[i] 个粮食。

两个人在玩抢粮食的游戏,其中小 a 已经将他的 m 个士兵,分配到了位置 d[1] 到 d[m] 的位置。

现在轮到小 b 放置他的 n 个士兵了,游戏规则如下:

小 b 的士兵位置不能与小 a 的士兵重合,但可以直接放到粮仓上。

如果小 b 的士兵距离某个粮仓更近,则粮仓中的所有粮食归小 b 所有,否则归小 a (相等也是归小 a )

问小 b 最多能够获得多少粮食。

输入格式 第一行输入三个正整数k,m,n。 之后k行每行输入两个整数p[i],a[i]。 之后m行每行输入一个整数d[i]。 其中2≤k≤200000,1≤m≤130000,1≤n≤100000。

输出格式 输出一行一个整数,表示小b最多能够获得多少粮食。

数据范围 对于5%的数据,

2≤k≤10,1≤m≤10,1≤n≤10;

对于76%的数据,

1≤m≤40000,1≤n≤25000;

对于100%的数据,

2≤k≤200000,1≤m≤130000,1≤n≤100000,0≤a[i]≤10 9 ,1≤p[i],d[i]≤10 9 。

输入样例 6 5 2

0 4

4 6

8 10

10 8

12 12

13 14

2

3

5

7

11

输出样例

36

样例解释 小b可以把士兵放在{8,12}两个位置上,这样子显然可以取得位置在{8,12}的粮仓,同时对于位置在{13}的粮仓,小a所有的士兵距离都比小b的在{12}的士兵位置远,所以小b也可以拿到这个位置的粮仓,总和为10+12+14=36

2024/8/27 15:30
加载中...