#269. 拉火车

拉火车

题目描述

还记得小的时候玩过的“拉火车”的扑克牌游戏吗?游戏规则如下:

  • 共有 nn 张牌
  • 每张牌都有一个花色 cc 以及牌的点数 vv(花色的种类不超过 kk )
  • 将这些牌依次取出排列。若在抽取某张牌时,先前排列的牌中已出现过和其具有相同花色的牌,你可以选择将这张牌和任意一张花色相同的牌之间的所有牌全部取出(包括这两张牌本身),并得到与取出的所有牌点数和相同的分数。

现给你这 nn 张牌的顺序,求最大能得到多少分?

输入格式

第一行包含两个整数 n,k(1n,k106)n,k(1\le n, k\le 10^6 )

第二行包含 nn 个整数 c1,c2,,cnc_1,c_2,\dots,c_n 表示花色,满足 1cik1\le c_i\le k

第三行,nn 个整数 v1,v2,,vnv_1,v_2,\dots,v_n 表示点数。 (1vi1091\le v_i\le 10^9)

输入顺序即为卡牌的顺序。cic_i 表示第 ii 张放入的牌的花色,viv_i 表示第 ii 张放入的牌的点数。

输出格式

输出一行一个整数,表示最多能得到的分数。

样例

7 3
1 2 1 2 3 2 3
1 2 1 2 3 2 4
14