方块 III
题号:NC14601
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

N 个方块排成一排,每个方块都染有颜色,第 i 个的颜色为 Ci,一共有M种颜色,每种颜色的方块都有不同的价值Wi,现在要求找出一段方块,使得其中只出现过一次的方块的价值总和最大。

输入描述:

T组数据。

每组数据第一行,包含两个整数N和M

接下来一行包含N个整数Ci,代表每个方块的颜色

最后一行包含M个整数Wi,表示每种颜色的价值

T = 10

1 <= N, M <= 105,1 <= Ci <= M,1 <= Wi <= 109

输出描述:

每组数据一个整数,表示答案。
示例1

输入

复制
5 3
1 2 1 1 3
30 40 50
10 5
5 4 3 5 3 1 2 4 2 1
78 65 99 132 200

输出

复制
90
574