AT_agc068_b [AGC068B] 01 Graph Construction
Description
[problemUrl]: https://atcoder.jp/contests/agc068/tasks/agc068_b
`0`,`1` のみからなる文字列の組 $ (S,T) $ が次の条件をすべて満たすとき (そしてそのときのみ) それを**良い**文字列組と呼ぶことにします.
- $ S,T $ に含まれる `0` の個数は等しい.
- $ S,T $ に含まれる `1` の個数は等しい.
特に,良い文字列組 $ (S,T) $ について,$ S,T $ の長さは同じです.
良い文字列組 $ (S,T) $ に対し,無向グラフ $ G(S,T) $ を次のように定義します.
- $ S $ の長さを $ L $ とする.頂点 $ 1,2,\cdots,L $ からなるグラフ $ g $ をつくる.
- $ S $ に含まれる `0` の個数を $ n $ とする. $ S $ に含まれる `0` の index を $ 1\ \leq\ a_1\
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $
Output Format
答えを以下の形式で出力せよ.
> $ L $ $ S $ $ T $
ここで,$ L $ は $ S,T $ の長さである. 解が複数存在する場合,どれを出力しても構わない.
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 100 $
- $ 1\ \leq\ A_i\ \leq\ N $
- 入力される値はすべて整数
### Sample Explanation 1
出力例の $ S,T $ について $ G(S,T) $ を求めると,次のようになります. - $ 4 $ 頂点ならなるグラフ $ g $ を用意する. - $ S $ に含まれる `0` の index は $ (1,2) $ で,$ T $ に含まれる `0` の index は $ (3,4) $ である. 辺 $ (1,3),(2,4) $ を $ g $ に追加する. - $ S $ に含まれる `1` の index は $ (3,4) $ で,$ T $ に含まれる `1` の index は $ (1,2) $ である. 辺 $ (3,1),(4,2) $ を $ g $ に追加する. - $ G(S,T)=g $ とする. $ G(S,T) $ の連結成分は,頂点 $ (1,3) $ からなる成分と頂点 $ (2,4) $ からなる成分です. これは条件をすべて満たすので,この $ (S,T) $ は正しい出力です.