atcoder#AGC058C. [AGC058C] Planar Tree

[AGC058C] Planar Tree

配点 : 900900

問題文

ある円環上に NN 個の頂点が並んでいます. 頂点には時計回りに 11 から NN の番号がついており,頂点 ii には整数 AiA_i が書かれています. ここで,AiA_i1,2,3,41,2,3,4 のいずれかです. また AA1,2,3,41,2,3,4 をそれぞれ 11 つ以上含みます.

これらの NN 個の頂点を結ぶ辺を N1N-1 本追加し,木を作ることを考えます. ただしこの時,以下の条件を満たす必要があります.

  • 頂点 x,yx,y が直接辺で結ばれているならば,AxAy=1|A_x-A_y|=1 である.
  • 追加した辺を線分として描いた時,どの 22 つも端点以外で交わらない.

例えば,以下の図は条件を満たす木の例です.

figure1

条件を満たすような木を作ることが可能かどうか判定してください.

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

制約

  • 1T750001 \leq T \leq 75000
  • 4N3000004 \leq N \leq 300000
  • 1Ai41 \leq A_i \leq 4
  • AA1,2,3,41,2,3,4 をそれぞれ 11 つ以上含む
  • 11 つの入力ファイルにつき,NN の総和は 300000300000 を超えない
  • 入力はすべて整数である

入力

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

TT

case1case_1

case2case_2

\vdots

caseTcase_T

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

NN

A1A_1 A2A_2 \cdots ANA_N

出力

各ケースに対し,条件を満たす木を作ることができるならば Yes を,できないならば No を出力せよ.

3
4
1 2 3 4
4
1 3 4 2
4
1 4 2 3
Yes
Yes
No
3
8
4 2 3 4 1 2 2 1
8
3 2 2 3 1 3 3 4
8
2 3 3 2 1 4 1 4
Yes
Yes
No

最初のテストケースは,問題文中の図に対応しています.