#1043. 散乱度

散乱度

Distanced (distanced, 2s, 512M)

Bytelane 上停着 nn 辆车。文明城市评比就要开始了,作为 Bytecity 市长的你决定移除一部分车使得街道更文明(也可以什么也不移除)。

一个文明的街道首先应该整齐:车不应该停得过于散乱。我们称两辆车 xxyy 属于同一个联通块当且仅当它们的距离不超过 tt(“直接相邻”),或存在车 cc 使得 xxcc 属于同一个联通块且 ccyy 属于同一个联通块(“间接相邻”)。街道的散乱度为联通块的数量(即两两不属于同一个联通块的车集合的最大可能大小)。

一个文明的街道还应该尽量美观:第 ii 辆车有 aia_i 的美观度,而街道的美观度是剩余车辆美观度的总和。由于部分车辆可能年久失修,aia_i 可能为负。

由于你还没有决定好街道的整齐程度,对于每个 s{1,2,,n}s \in \{1,2,\cdots,n\},你想要知道散乱度不超过 ss 的移除方案中美观度的最大值。

输入格式

第一行两个正整数 n,tn,t,表示车辆数和直接相邻的距离上限。

第二行 nn 个整数 x1,x2,,xnx_1,x_2,\cdots,x_n,依次给定每辆车在数轴上的位置。车 aa 和车 bb 的距离为 xaxb|x_a-x_b|

第三行 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n,依次给定每辆车的美观度。

输出格式

输出一行 nn 个整数,第 ii 个表示散乱度不超过 ii 的移除方案中美观度的最大值。

样例输入1

5 2
5 1 2 4 8
5 3 4 -1 1

样例输出1

11 12 13 13 13

要求散乱度不超过 11 时一种最优方案是保留前四辆车。要求散乱度不超过 22 时一种最优方案是保留前三辆车。

样例输入2、样例输出2

见选手文件夹下 ex_distanced2.inex_distanced2.ans

数据范围

对于所有数据,1n1051\le n\le 10^51t1091\le t\le 10^9xi,ai109|x_i|, |a_i|\le 10^9xix_i 两两不同。

对于 20% 的数据,n20n\le 20

对于 40% 的数据,n400n\le 400

对于 70% 的数据,n2000n\le 2000

对于另外 10% 的数据,ai0a_i\ge 0