H - AB test
ผักชี
5
s
1024
MB
675
点
問題文
長さ $N$ の数列 $X = (X_1, X_2 \ldots, X_N)$ に対して、次の手順を繰り返して得られる長さ $N$ の数列 $C$ を、$X$ の閲覧順と定義します。閲覧順は、数列 $X$ に対して一意に定まりません。
手順:
- 空の数列 $C$ と、集合 $S$ を用意する。はじめ $S$ の要素は、組 $(1, N)$ のみである
- 以下の操作を順に、$S$ が空になるまで合計 $N$ 回繰り返す
- 集合 $S$ から任意の一つの組 $(l, r)$ を選び、$S$ から取り除く
- $X_l, X_{l+1}, \ldots, X_r$ の最小値を $X_{m}$ としたとき:
- $C$ の末尾に $m$ を追加する
- $l \neq m$ のとき、$S$ に組 $(l, m-1)$ を追加する
- $r \neq m$ のとき、$S$ に組 $(m+1, r)$ を追加する
長さ $N$ の数列 $A = (A_1, A_2 \ldots, A_N)$ と、長さ $M$ の数列 $B = (B_1, B_2 \ldots, B_M)$ が与えられます。
次の条件を満たす $A$ の(連続とは限らない) 部分列 $A^{'}$ が存在するかどうかを判定してください。
条件:
- $A^{'}$ の閲覧順と $B$ の閲覧順を一致させることができる
制約
- $1 \leq N \leq 2{,}000$
- $1 \leq M \leq N$
- $A_1, A_2 \ldots, A_N$ は、$(1, 2 \ldots, N)$ を並び替えて作られる順列
- $B_1, B_2 \ldots, B_M$ は、$(1, 2 \ldots, M)$ を並び替えて作られる順列
入力
入力は以下の形式で与えられる。
$N$ $M$
$A_1$ $A_2$ $\dots$ $A_N$
$B_1$ $B_2$ $\dots$ $B_M$
出力
条件を満たす $A$ の部分列 $A^{'}$ が存在するなら Yes
を、できないなら No
を一行に出力してください。
入力例 1
10 5
1 10 3 5 8 9 2 4 7 6
3 1 5 2 4
出力例 1
Yes
$A=(1, 10, 3, 5, 8, 9, 2, 4, 7, 6)$ から要素 $1$, $5$, $8$, $2$, $6$ を取り除いて作られる部分列 $A^{'} =(10, 3, 9, 4, 7)$ を考えます。
例えば、列 $(2, 4, 5, 3, 1)$ は、$ A^{'}$ の閲覧順の一例であり、$B$ の閲覧順の一例でもあります。
よって、Yes
を出力します。
入力例 2
2 2
2 1
1 2
出力例 2
No