AT_awtf2026algo_d Adj Swap Lex Max
Description
$ (1,2,\ldots,N) $ の順列 $ P $ 及び $ Q $ が与えられます. ここで $ P $ は辞書順で $ Q $ 以下です.
あなたは以下の操作を $ 0 $ 回以上行うことができます.
- $ P $ の隣接する $ 2 $ 要素を選んで入れ替える.ただしこの時以下の条件を満たす必要がある.
- 操作後の $ P $ も辞書順で $ Q $ 以下である.
- 入れ替える $ 2 $ つの値を $ (x,y) $ とするとき,同じ $ (x,y) $ が今までの操作で入れ替えられたことがない.ここで $ x,y $ の順番は問わない.つまり, $ (x,y) $ を一度入れ替えたあとは $ (x,y) $ でも $ (y,x) $ でも入れ替えることはできない.
最終的な $ P $ としてあり得る順列の中で辞書順最大のものを求めてください.
$ 1 $ つの入力につき, $ T $ ケースを解いてください.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ T $ $ case_1 $ $ case_2 $ $ \vdots $ $ case_T $
各テストケースは以下の形式で与えられる.
> $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $ $ Q_1 $ $ Q_2 $ $ \ldots $ $ Q_N $
Output Format
各テストケースについて,答えとなる順列を出力せよ.
Explanation/Hint
### Sample Explanation 1
$ 1 $ つめのテストケースでは,以下のように操作するのが最適です.
- $ P=(1,2,3) $ からスタート
- $ (2,3) $ を入れ替え, $ P=(1,3,2) $ になる
- $ (1,3) $ を入れ替え, $ P=(3,1,2) $ になる
$ 2 $ つめのテストケースでは,一度も操作を行わないのが最適です.
### Constraints
- $ 1 \leq T \leq 500000 $
- $ 2 \leq N \leq 10^6 $
- $ P $ は $ (1,2,\ldots,N) $ の順列である
- $ Q $ は $ (1,2,\ldots,N) $ の順列である
- $ P $ は辞書順で $ Q $ 以下である
- $ T $ ケースにわたる $ N $ の総和は $ 10^6 $ 以下
- 入力はすべて整数