atcoder#TENKA12018D. Crossing

Crossing

配点 : 500500

問題文

整数 NN が与えられます。{1,2,...N}\{1,2,...N\} の部分集合の組 (S1,S2,...,Sk)(S_1,S_2,...,S_k) であって、以下の条件を満たすものが存在するか判定し、 存在する場合はひとつ構成してください。

  • 1,2,...,N1,2,...,N のうちどの整数も、S1,S2,...,SkS_1,S_2,...,S_k のうちちょうど 22 つに含まれる
  • S1,S2,...,SkS_1,S_2,...,S_k のうちどの 22 つの集合をとっても、それらに共通して含まれる要素はちょうど 11 つである

制約

  • 1N1051 \leq N \leq 10^5
  • NN は整数である

入力

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

NN

出力

条件を満たす部分集合の組が存在しない場合、No を出力せよ。 存在する場合、まず Yes を出力し、次いで以下の形式で部分集合の情報を出力せよ。 ただし、Si={Si,1,Si,2,...,Si,Si}S_i=\{S_{i,1},S_{i,2},...,S_{i,|S_i|}\} とする。

条件を満たすものが複数ある場合、どれを出力しても構わない。

kk

S1|S_1| S1,1S_{1,1} S1,2S_{1,2} ...... S1,S1S_{1,|S_1|}

::

Sk|S_k| Sk,1S_{k,1} Sk,2S_{k,2} ...... Sk,SkS_{k,|S_k|}

3
Yes
3
2 1 2
2 3 1
2 2 3

(S1,S2,S3)=({1,2},{3,1},{2,3})(S_1,S_2,S_3)=(\{1,2\},\{3,1\},\{2,3\}) とすれば、条件を満たすことが確認できます。

4
No