AT_agc068_c [AGC068C] Ball Redistribution
Description
[problemUrl]: https://atcoder.jp/contests/agc068/tasks/agc068_c
$ 1 $ から $ N $ までの番号がついた $ N $ 個の箱と,$ 1 $ から $ N $ までの番号がついた $ N $ 個のボールがあります.
あなたはすぬけくんに対し,宿題として以下の**手順**を行うことを課しました.
- それぞれのボールを好きな箱に入れる.$ 1 $ つの箱に複数のボールが入ってもよいし,ボールが入らない箱があってもよい.
- $ i=1,2,\cdots,N $ に対してこの順に以下の操作を行う.
- 箱 $ i $ にボールが入っていない場合,何もしない.
- 箱 $ i $ にボールが入っている場合,それらをすべて取り出し,**好きな順番で**一列に並べる.取り出したボールの個数を $ k $ ,列の中のボールの番号を $ (x_1,x_2,\cdots,x_k) $ とする.各 $ 1\ \leq\ j\ \leq\ k $ に対して,ボール $ x_j $ を箱 $ x_{j+1} $ に入れる.ただしここで $ x_{k+1} $ は $ x_1 $ を意味する. ボールを箱に入れる操作はすべて同時に行うものとする.
すぬけくんは宿題を終えたと主張し,最終状態をあなたに報告してきました. 具体的には,手順の終了後,ボール $ i $ が箱 $ A_i $ に入っている状態になったと言っています.
あなたは,すぬけくんが手順を正しく行ったかどうかを疑っています. すぬけくんが報告した状態が手順の結果としてあり得るかどうかを判定してください.
$ 1 $ つの入力につきテストケースは $ T $ 個あります.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ T $ $ case_1 $ $ case_2 $ $ \vdots $ $ case_T $
各テストケースは以下の形式で与えられる.
> $ N $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $
Output Format
各テストケースに対し,すぬけくんが報告した状態が手順の結果としてあり得るならば `Yes`,あり得ないならば `No` を出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ T\ \leq\ 250000 $
- $ 1\ \leq\ N\ \leq\ 250000 $
- $ 1\ \leq\ A_i\ \leq\ N $
- ひとつの入力の中のテストケースすべてにわたる $ N $ の総和は $ 250000 $ 以下である
- 入力される値はすべて整数
### Sample Explanation 1
$ 1 $ つめのテストケースについて考えます. 以下の手順を考えるとすぬけくんが報告した状態になるので,答えは `Yes` です. - ボール $ 1,2,3 $ をそれぞれ箱 $ 1,1,2 $ に入れる. - 箱 $ 1 $ のボールを取り出して,$ (2,1) $ と並べる. - ボール $ 2 $ を箱 $ 1 $ に入れる. - ボール $ 1 $ を箱 $ 2 $ に入れる. - 箱 $ 2 $ のボールを取り出して,$ (1,3) $ と並べる. - ボール $ 1 $ を箱 $ 3 $ に入れる. - ボール $ 3 $ を箱 $ 1 $ に入れる. - 箱 $ 3 $ のボールを取り出して,$ (1) $ と並べる. - ボール $ 1 $ を箱 $ 1 $ に入れる. - ボール $ 1,2,3 $ がそれぞれ箱 $ 1,1,1 $ に入っている状態になる.