No.2332 Make a Sequence
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 36
作問者 : dyktr_06 / テスター : firiexp phocom hikikomori sepa38 Seed57_cash
タグ : / 解いたユーザー数 36
作問者 : dyktr_06 / テスター : firiexp phocom hikikomori sepa38 Seed57_cash
問題文最終更新日: 2023-05-26 23:09:17
問題文
長さ $N$ の整数列 $A$、長さ $M$ の整数列 $B, C$ が与えられます。
また、空の列 $S$ があり、あなたは以下の操作を列の長さが $M$ になるまで行うことができます。
- 操作前の列 $S$ の長さを $l$ とする。$1 \leq k \leq \min(M - l, N)$ を満たす整数 $k$ を選び、連続部分列 $(A_1, A_2, …, A_k)$ を列 $S$ の末尾に追加する。 このとき、コストが $k \times C_l$ だけかかる。
操作後に列 $S$ を列 $B$ に一致させることができるかどうかを判定し、できる場合は最小のコストを求めてください。
制約
- $1 \leq N, M \leq 2 \times 10^5$
- $1 \leq A_i \leq 10^9$
- $1 \leq B_i \leq 10^9$
- $1 \leq C_i \leq 10^9$
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
$N$ $M$ $A_1$ $A_2$ ... $A_N$ $B_1$ $B_2$ ... $B_M$ $C_0$ $C_1$ ... $C_{M - 1}$
出力
列 $S$ を列 $B$ に一致させるための最小のコストを一行に出力せよ。
一致させられない場合には $-1$ を出力せよ。
サンプル
サンプル1
入力
4 7 1 2 3 1 1 1 2 3 1 1 2 1 2 3 2 1 2 3
出力
12
例えば、以下の手順で操作を行うことが最適です。
- $(1)$ を列 $S$ に追加する。$1 \times 1 = 1$ のコストがかかる。
- $(1, 2, 3)$ を列 $S$ に追加する。$3 \times 2 = 6$ のコストがかかる。
- $(1)$ を列 $S$ に追加する。$1 \times 1 = 1$ のコストがかかる。
- $(1, 2)$ を列 $S$ に追加する。$2 \times 2 = 4$ のコストがかかる。
サンプル2
入力
3 4 1 3 2 1 3 1 2 1 1 1 1
出力
-1
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。