问题 D:手术(op.cpp)

文件提交:文件名:op 内存限制:256 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:1
命题人:
提交:24 解决:5

题目描述

此题使用freopen提交,文件名:op

在上一题中,牛牛喝了 10^100000 数量级的饮料,他得了一个需要去医院动手术的大病——蛀牙。

但是和他一起去医院的总共有 n 名患者。而这家医院只有一个医生和床位,所以只能同时给一个人做手术。每个人有一个病情严重度 pi,保证所有人的严重度均不同,严重度越小说明所剩寿命越短,病情越紧急。
第 i 名患者到达时间是 ti,治病后会向医生付款 ai 个金币,手术时长是 bi。假设第 x 个单位时间开始手术,则第 x+bi-1 个单位时间结束手术,医生在第 x+bi 个单位时间及以后才能接待别的患者。手术过程不能中断。
患者到达医院之后可以不手术,先等待医生的通知(无论此时床位是否空闲),医生之后才进行手术。
如果一个患者发现医院里有一个病情严重度比自己轻微的患者正在手术而自己还没有进行手术,则他会开始医闹。医生不想让医闹发生,问他第 k 个单位时间结束后能收获金币的最大值。
大样例:[sample.zip](https://uploadfiles.nowcoder.com/files/20230812/336089_1691809675959/sample.zip)

输入

输入包含五行。

第一行输入两个正整数 n, k。

第二行输入长度为 n 的序列 p。

第三行输入长度为 n 的序列 t。

第四行输入长度为 n 的序列 a。

第五行输入长度为 n 的序列 b。

其中 n, p, t, a, b 如题意所述。

输出

输出一个数表示第k个单位时间结束后能收获金币的最大值

样例输入

3 2
1 2 3
1 1 1
1 2 3
1 1 1

样例输出

3

提示

样例2
输入
3 2
2 3 1
1 1 1
1 2 3
1 1 1
输出
4
数据范围
- pi两两不同,1 ≤ pi ≤ n。
- 对于测试点1:1 ≤ n ≤ 100, 1 ≤ ti, ai, bi, k ≤ 10^9。
- 对于测试点2∼5:1 ≤ n ≤ 1000, 1 ≤ ti, ai, bi, k≤ 10^9。
- 对于测试点6∼10:1 ≤ n ≤ 100000, 1 ≤ ti, ai, bi, k ≤ 10^9。