#HX1256H. 丢沙包

提交0 通过0
通过率0%
时间限制1000ms
内存限制128MiB
    ID: 10089 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 普及 上传者: 标签>编程题C++CSPCSP复赛CSP复赛专项练习暑假CSP复赛集训暑假集训1256-OI赛制模拟考上下

题目描述

题目描述

夜市里最近在举行丢沙包游戏,如果小珅在连续 q个沙包中打中了所有种类的公仔,小珅就会得到一个终极大奖-阿噗公仔(至臻限定版)。(每种公仔至少被打爆一只)。

这个游戏中有m种公仔,编号为1∼m,每种公仔都有自己的价值,用v1v_{1}vmv_m表示。

小珅一共投掷了n次沙包,每次投掷沙包的结果用aia_i表示,显然凭小珅的技术,只要投掷的次数足够多,小珅就一定能打中所有种类公仔,因此小珅准备挑战一下,他想统计出,在这n次投掷沙包中,打中所有种类的公仔最少用了连续的几次沙包,以及在这种情况下打中的公仔总价值是多少。若有多种以最少次数打中所有种类公仔的情况,那么需要找到总价值中的最大值。

输入格式

第一行两个整数 n 和 m。

第二行,m 个整数 v1v_{1},v2v_{2},…,vmv_m,表示每个公仔的价值

第三行 n个整数 a1a_{1},a2a_{2},…,ana_n,分别表示沙包打中的公仔的种类,0 表示没打中。

输出格式

如果小珅无法在这 n 次沙包中打中所有种类的公仔,则输出 −1。 若能打中,则输出共两行: 第 1 行,为一个整数,表示打中所有种类公仔所需要的连续最少次数。 第 2 行,为一个整数,表示打中的公仔的总价值。

样例输入

12 5
1 2 3 4 5
2 5 3 1 3 2 4 1 0 5 4 3

样例输出

6
18

提示

样例1说明: 能打中1~5号公仔的最少序列为:

5 3 1 3 2 4, 该序列打中的公仔总价值为:5+3+1+3+2+4=185+3+1+3+2+4=18

3 2 4 1 0 5, 该序列打中的公仔总价值为:3+2+4+1+0+5=153+2+4+1+0+5=15

所以最终输出结果为: 6 18

对于 60% 的数据:1n10001\le n\le 10001m1001\le m\le 1001vi1041\le v_i\le 10^{4},保证 aia_i 不为 0。

对于 100% 的数据:1n1061\le n\le 10^{6}1m2×1031\le m\le 2\times 10^{3}1vi1091\le v_i\le 10^{9}0aim0\le a_i\le m

3 3
10 20 30
1 2 3
3
60
5 1
100
0 1 0 1 0
1
100
5 3
10 20 30
0 1 2 2 1
-1