Files
luogu/CF1380D.md
T
hanyixuanten 209d5715a5
Check cpp / md pair / Check md headers (push) Successful in 4s
new file: CF1380D.cpp
2026-10-30 05:14:06 +00:00

2.0 KiB
Raw Blame History

CF1380D Berserk And Fireball

题目描述

有 n 个战士站成一排,第 i 个战士的战力是 $a_i$。所有战士的战力都是两两不同的。

你可以使用两种类型的咒语:

  1. 火球术:你可以消耗 x 点法力值来干掉连续的 k 个战士(你必须干掉正好 k 个,而不能干掉 \le k 个)。

  2. 狂暴术:你可以消耗 y 点法力值,选择站在一起的两个战士使他们展开决斗,战力较弱的那个战士将会被干掉。

我们来举个例子,假设有 7 个战士,其战力分别为 $[2,3,7,8,11,5,4]$,且此时的$k=3$(k 的定义详见火球术)。如果你对战力为 8 与 11 的两个战士施加狂暴术,剩下战士的战力将会变成 $[2,3,7,11,5,4]$(战力为 8 的战士在决斗中战死)。然后如果我们对战力为 [7,11,5] 的战士施加火球术,剩下战士的战力将会变成 $[2,3,4]$。

你想要组建一支军队,因此你想要将所有战士战力的序列从 a_1,a_2,\cdots,a_n 变为 $b_1,b_2,\cdots,b_m$。试计算你所需的最少法力值。

输入格式

第一行两个整数 n,m (1\le n,m\le 2\cdot 10^5) ——序列 a 的长度和序列 b 的长度。

第二行三个整数 x,k,y (1\le x,y\le 10^9,1\le k\le n) ——火球术消耗的法力值,火球术的范围和狂暴术消耗的法力值。

第三行 n 个整数 $a_1,a_2,…,a_n (1\le a_i\le n)$。保证 a_i 是两两不同的。

第四行 m 个整数 $b_1,b_2,…,b_m(1\le b_i\le n)$。保证 b_i 是两两不同的。

输出格式

一行一个整数,即将序列从 a_1,a_2,\cdots,a_n 变为 $b_1,b_2,\cdots,b_m$所需的最少法力值。如果无法完成变换,则输出$-1$。

输入输出样例 #1

输入 #1

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

输出 #1

8

输入输出样例 #2

输入 #2

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

输出 #2

-1

输入输出样例 #3

输入 #3

4 4
2 1 11
1 3 2 4
1 3 2 4

输出 #3

0