AT_tenka1_2018_d Crossing
Description
[problemUrl]: https://atcoder.jp/contests/tenka1-2018/tasks/tenka1_2018_d
整数 $ N $ が与えられます。$ \{1,2,...N\} $ の部分集合の組 $ (S_1,S_2,...,S_k) $ であって、以下の条件を満たすものが存在するか判定し、 存在する場合はひとつ構成してください。
- $ 1,2,...,N $ のうちどの整数も、$ S_1,S_2,...,S_k $ のうちちょうど $ 2 $ つに含まれる
- $ S_1,S_2,...,S_k $ のうちどの $ 2 $ つの集合をとっても、それらに共通して含まれる要素はちょうど $ 1 $ つである
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $
Output Format
条件を満たす部分集合の組が存在しない場合、`No` を出力せよ。 存在する場合、まず `Yes` を出力し、次いで以下の形式で部分集合の情報を出力せよ。 ただし、$ S_i=\{S_{i,1},S_{i,2},...,S_{i,|S_i|}\} $ とする。
条件を満たすものが複数ある場合、どれを出力しても構わない。
> $ k $ $ |S_1| $ $ S_{1,1} $ $ S_{1,2} $ $ ... $ $ S_{1,|S_1|} $ $ : $ $ |S_k| $ $ S_{k,1} $ $ S_{k,2} $ $ ... $ $ S_{k,|S_k|} $
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 10^5 $
- $ N $ は整数である
### Sample Explanation 1
$ (S_1,S_2,S_3)=(\{1,2\},\{3,1\},\{2,3\}) $ とすれば、条件を満たすことが確認できます。