atcoder#TENKA12018D. Crossing

Crossing

题目描述

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

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

输入格式

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

N N

输出格式

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

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

k k S1 |S_1| S1,1 S_{1,1} S1,2 S_{1,2} ... ... S1,S1 S_{1,|S_1|} : : Sk |S_k| Sk,1 S_{k,1} Sk,2 S_{k,2} ... ... Sk,Sk S_{k,|S_k|}

题目大意

给定 nn ,试构造 kk 个集合,使得每两个集合的交集仅有一个数,并且所有 11nn 之间的数字在这些集合中出现两次。

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

提示

制約

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

Sample Explanation 1

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