問題一覧 > 通常問題

No.2332 Make a Sequence

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 36
作問者 : dyktr_06dyktr_06 / テスター : firiexpfiriexp phocomphocom hikikomorihikikomori sepa38sepa38 Seed57_cashSeed57_cash
3 ProblemId : 9531 / 出題時の順位表 / 自分の提出
問題文最終更新日: 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もしくは右上の雲マークをクリックしてアカウントを作成してください。