问题 A:神秘金币(species.cpp)

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

题目描述

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

在一个古老的文明中,有一种神秘的金币。你是一名考古学家,偶然发现了这个文明的遗址,现在是时刻 0,有 n 枚金币同时被发现。第 i 枚金币会在 ti 时刻后消失,它的价值是 vi。然而,由于地形和其他条件的限制,你每个时刻只能收集一枚金币。此外,你的背包有限,你最多只能收集 k 枚金币。现在,你面前有 n 枚金币,你的任务是确定如何选择金币,以便在收集的金币数量不超过 k 的前提下,最大化你可以获取的金币价值总和。 注意:金币被收集到背包之后就不会消失了。 大样例:点击下载 sample.zip

输入

第一行包含两个整数 n 和 k,表示金币的数量和你最多可以收集的金币数量。

第二行包含 n 个整数 ti,表示每枚金币的存在时间。(1 ≤ ti ≤ n 且所有 ti 不重复)

第三行包含 n 个整数 vi,表示每枚金币的价值。

输出

输出一个整数,表示你最多可以获取的金币价值总和。

样例输入

5 2
1 2 4 3 5
3 2 1 2 2

样例输出

5

提示

示例2

输入

4 2
1 3 4 2
4 1 3 2

输出

7

每组数据点 10 分,共 10 组数据。其中 1 ≤ ti ≤ n 且保证不重复。