AT_arc133_b [ARC133B] Dividing Subsequence
Description
[problemUrl]: https://atcoder.jp/contests/arc133/tasks/arc133_b
$ (1,2,\cdots,N) $ の順列 $ P=(P_1,P_2,\cdots,P_N) $ および $ Q=(Q_1,Q_2,\cdots,Q_N) $ が与えられます.
すぬけくんは,$ P $ と $ Q $ から(連続するとは限らない)部分列を取り出そうとしています. ここで,取り出した部分列は以下の条件を満たす必要があります.
- $ P $ から取り出した部分列と $ Q $ から取り出した部分列の長さは等しい.以下,この長さを $ k $ とおく.
- $ P $ から取り出した部分列を $ a=(a_1,a_2,\cdots,a_k) $,$ Q $ から取り出した部分列を $ b=(b_1,b_2,\cdots,b_k) $ とおく. このとき,各 $ 1\ \leq\ i\ \leq\ k $ について,$ b_i $ は $ a_i $ の倍数である.
すぬけ君が取り出せる部分列の長さの最大値を求めて下さい.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_N $ $ Q_1 $ $ Q_2 $ $ \cdots $ $ Q_N $
Output Format
答えを出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 200000 $
- $ P $ は $ (1,2,\cdots,N) $ の順列である
- $ Q $ は $ (1,2,\cdots,N) $ の順列である
- 入力される値はすべて整数である
### Sample Explanation 1
$ P $ から部分列 $ (1,2) $ を,$ Q $ から部分列 $ (4,2) $ を取り出すと,これは条件を満たします. 長さ $ 3 $ 以上の部分列を条件を満たすように取ることはできないため,答えは $ 2 $ です.