#agc058e. [agc058_e]Nearer Permutation

[agc058_e]Nearer Permutation

問題文

この問題では,順列と言った際には,(1,2,cdots,N)(1,2,\\cdots,N) の順列を指すものとします.

22 つの順列 p,qp,q に対し,それらの距離 d(p,q)d(p,q) を次のように定義します.

  • pp の中で隣接 22 項を swap することを繰り返し,ppqq に一致させることを考える.この時必要な最小の操作回数を d(p,q)d(p,q) とする.

さらに,順列 xx に対し,順列 f(x)f(x) を次のように定義します.

  • y=(1,2,cdots,N)y=(1,2,\\cdots,N) とする.ここで,順列 zz であって,d(x,z)leqd(y,z)d(x,z) \\leq d(y,z) を満たすものを考える. これらの中で辞書順最小のものを f(x)f(x) とする.

例えば,x=(2,3,1)x=(2,3,1) の場合,d(x,z)leqd(y,z)d(x,z) \\leq d(y,z) を満たす順列としては,z=(2,1,3),(2,3,1),(3,1,2),(3,2,1)z=(2,1,3),(2,3,1),(3,1,2),(3,2,1) が考えられます. このうち辞書順最小なのは (2,1,3)(2,1,3) なので, f(x)=(2,1,3)f(x)=(2,1,3) となります.

順列 A=(A1,A2,cdots,AN)A=(A_1,A_2,\\cdots,A_N) が与えられます. f(x)=Af(x)=A を満たす順列 xx が存在するかどうか判定してください.

11 つの入力ファイルにつき,TT 個のテストケースを解いてください.

数列の辞書順とは?

相異なる数列 SS と数列 TT の大小を判定するアルゴリズムを以下に説明します。

以下では SSii 番目の要素を SiS_i のように表します。また、 SSTT より辞書順で小さい場合は SltTS \\lt T 、大きい場合は SgtTS \\gt T と表します。

  1. SSTT のうち長さが短い方の文字列の長さを LL とします。i=1,2,dots,Li=1,2,\\dots,L に対して SiS_iTiT_i が一致するか調べます。
  2. SineqTiS_i \\neq T_i である ii が存在する場合、そのような ii のうち最小のものを jj とします。そして、SjS_jTjT_j を比較して、 SjS_jTjT_j より(数として)小さい場合は SltTS \\lt T 、大きい場合は SgtTS \\gt T と決定して、アルゴリズムを終了します。
  3. SineqTiS_i \\neq T_i である ii が存在しない場合、 SSTT の長さを比較して、SSTT より短い場合は SltTS \\lt T 、長い場合は SgtTS \\gt T と決定して、アルゴリズムを終了します。

制約

  • 1leqTleq1500001 \\leq T \\leq 150000
  • 2leqNleq3000002 \\leq N \\leq 300000
  • (A1,A2,cdots,AN)(A_1,A_2,\\cdots,A_N)(1,2,cdots,N)(1,2,\\cdots,N) の順列
  • 11 つの入力ファイルにつき,NN の総和は 300000300000 を超えない
  • 入力される値はすべて整数である

入力

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

TT case1case_1 case2case_2 vdots\\vdots caseTcase_T

各ケースは以下の形式で与えられる.

NN A1A_1 A2A_2 cdots\\cdots ANA_N

出力

各ケースに対し,f(x)=Af(x)=A を満たす順列 xx が存在するならば Yes を,存在しないならば No を出力せよ.


入力例 1

2
2
1 2
2
2 1

出力例 1

Yes
Yes

例えば A=(2,1)A=(2,1) の場合は,x=(2,1)x=(2,1) とすると f(x)=Af(x)=A となります.


入力例 2

6
3
1 2 3
3
1 3 2
3
2 1 3
3
2 3 1
3
3 1 2
3
3 2 1

出力例 2

Yes
Yes
Yes
Yes
No
No

例えば A=(2,3,1)A=(2,3,1) の場合は,x=(3,2,1)x=(3,2,1) とすると,f(x)=Af(x)=A となります.


入力例 3

24
4
1 2 3 4
4
1 2 4 3
4
1 3 2 4
4
1 3 4 2
4
1 4 2 3
4
1 4 3 2
4
2 1 3 4
4
2 1 4 3
4
2 3 1 4
4
2 3 4 1
4
2 4 1 3
4
2 4 3 1
4
3 1 2 4
4
3 1 4 2
4
3 2 1 4
4
3 2 4 1
4
3 4 1 2
4
3 4 2 1
4
4 1 2 3
4
4 1 3 2
4
4 2 1 3
4
4 2 3 1
4
4 3 1 2
4
4 3 2 1

出力例 3

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No