积木整理(prun)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
积木整理(prun)
题目描述
Y 同学正在整理一排共 个积木,每个积木的高度为 。已知所有积木的高度两两不同。为了满足陈列要求,Y 同学需要将当前的积木序列 转化为目标序列 。
在整理过程中,Y 同学可以使用以下两种操作:
- 机械化清理:消耗 单位能量,选择序列中连续的 个积木并将其全部移除。注意,每次必须正好移除 个积木。
- 手工拆除:消耗 单位能量,选择序列中相邻的两个积木,将其中高度较低的一个移除。
Y 同学希望通过上述操作,以最小的能量消耗将序列 变为序列 ( 是 的子序列)。如果无法达成目标,请输出 。
输入格式
第一行包含两个整数 和 ,分别表示原积木序列的长度和目标序列的长度。
第二行包含三个整数 ,分别表示机械化清理的能量消耗、清理的范围长度以及手工拆除的能量消耗。
第三行包含 个整数 ,表示原序列中各积木的高度。
第四行包含 个整数 ,表示目标序列中各积木的高度。
输出格式
输出一个整数,表示完成转化所需的最小能量消耗。若无解,则输出 。
样例
样例输入 #1
5 2
5 2 3
3 1 4 5 2
3 5
样例输出 #1
8
样例输入 #2
4 4
5 1 4
4 3 1 2
2 4 3 1
样例输出 #2
-1
样例输入 #3
4 4
2 1 11
1 3 2 4
1 3 2 4
样例输出 #3
0
数据范围与约定
对于 的数据,保证 ,,,。
| 测试点编号 | 分值 | 特殊性质 | |
|---|---|---|---|
| 无 | |||
| 特殊性质 A | |||
| 特殊性质 B | |||
| 无 | |||
- 特殊性质 A:保证 。
- 特殊性质 B:保证 。