#arc151e. [arc151_e]Keep Being Substring

[arc151_e]Keep Being Substring

問題文

長さ NN の整数列 A=(A1,A2,ldots,AN)A = (A_1, A_2, \\ldots, A_N) が与えられます。 また、AA の長さ PP の連続な部分列 X=(X1,X2,ldots,XP)X = (X_1, X_2, \\ldots, X_P) と、AA の長さ QQ の連続な部分列 Y=(Y1,Y2,ldots,YQ)Y = (Y_1, Y_2, \\ldots, Y_Q) が与えられます。

XX に対して、下記の 44 つのいずれかを行うという操作を、好きな回数( 00 回でも良い)だけ行うことができます。

  • XX の先頭に任意の整数を 11 つ追加する。
  • XX の先頭の要素を削除する。
  • XX の末尾に任意の整数を 11 つ追加する。
  • XX の末尾の要素を削除する。

ただし、各操作の前後において、XXAA空でない連続な部分列でなければなりません。 XXYY と一致させるために行う操作回数の最小値を求めてください。 なお、本問題の制約下において、操作の繰り返しによって XXYY を必ず一致させられることが証明できます。

連続な部分列とは?

数列 X=(X1,X2,ldots,XP)X = (X_1, X_2, \\ldots, X_P) が数列 A=(A1,A2,ldots,AN)A = (A_1, A_2, \\ldots, A_N)連続な部分列であるとは、1leqlleqNP+11 \\leq l \\leq N-P+1 を満たす整数 ll が存在して、 すべての i=1,2,ldots,Pi = 1, 2, \\ldots, P について、Xi=Al+i1X_i = A_{l+i-1} が成り立つことです。

制約

  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 1leqAileqN1 \\leq A_i \\leq N
  • 1leqP,QleqN1 \\leq P, Q \\leq N
  • (X1,X2,ldots,XP)(X_1, X_2, \\ldots, X_P)(Y1,Y2,ldots,YQ)(Y_1, Y_2, \\ldots, Y_Q) は、(A1,A2,ldots,AN)(A_1, A_2, \\ldots, A_N) の連続な部分列
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN A1A_1 A2A_2 ldots\\ldots ANA_N PP X1X_1 X2X_2 ldots\\ldots XPX_P QQ Y1Y_1 Y2Y_2 ldots\\ldots YQY_Q

出力

答えを出力せよ。


入力例 1

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

出力例 1

3

下記の手順で操作すると、XXAA の空でない連続な部分列であるという条件を満たしたまま、XXYY に一致させることが出来ます。

  1. まず、XX の先頭の要素を削除する。その結果、X=(1)X = (1) となる。
  2. 次に、XX の末尾に 55 を追加する。その結果、X=(1,5)X = (1, 5) となる。
  3. さらに、XX の 末尾に 77 を追加する。その結果、X=(1,5,7)X = (1, 5, 7) となり、XXYY と一致する。

上記の手順の操作回数は 33 回であり、これが考えられる最小の操作回数です。


入力例 2

20
2 5 1 2 7 7 4 5 3 7 7 4 5 5 5 4 6 5 6 1
6
1 2 7 7 4 5
7
7 4 5 5 5 4 6

出力例 2

7