在 JOI 王国举办了一场乒乓球比赛。 $N$ 只编号从 $1$ 到 $N$ 的海狸参加了这场比赛,并进行了一场循环赛。
你从 Bitaro 那里得知了关于比赛结果的以下信息。
- 没有平局比赛。
- 正好有 $M$ 种选择 $3$ 只海狸形成“三元悖论”。请注意,只有当以下两个条件之一恰好满足时,$3$ 只海狸 $i, j, k$($1 \leq i < j < k \leq N$)才形成“三元悖论”。
- 海狸 $i$ 击败了海狸 $j$,海狸 $j$ 击败了海狸 $k$,海狸 $k$ 又击败了海狸 $i$。
- 海狸 $i$ 击败了海狸 $k$,海狸 $k$ 击败了海狸 $j$,海狸 $j$ 又击败了海狸 $i$。
你不确定 Bitaro 提供的信息是否正确,所以你决定思考是否有任何与 Bitaro 提供的信息相符的比赛结果。编写一个程序,根据 Bitaro 提供的信息判断是否有任何比赛结果与信息相符,如果有,找出其中任意一种比赛结果。
输入格式
一个测试案例包括 $Q$ 个场景,编号从 $1$ 到 $Q$。每个场景指定以下数值。
- 参加比赛的海狸数量 $N$。
- 选择 $3$ 只形成“三元悖论”的海狸的方式数量 $M$。
输入数据的格式如下。
- $Q$
每个场景的输入数据格式如下。
- $N$ $M$
输出格式
对应各个场景,按照以下顺序将答案写入标准输出。
在某些场景中,如果有任何与信息相符的比赛结果,请按照以下方式输出。
- Yes
- $S_2$
- $S_3$
- ...
- $S_N$
这里,$S_i$($2 \leq i \leq N$)是一个字符为 '0' 或 '1',长度为 $i-1$ 的字符串。$S_i$ 的第 $j$ 个字符为 '0' 表示海狸 $i$ 被海狸 $j$ 打败,为 '1' 表示海狸 $i$ 打败了海狸 $j$。如果存在多个结果,可以输出任何一个。
在某些场景中,如果没有任何与信息相符的比赛结果,请输出 No。
样例解释 1
有 $Q = 2$ 个场景。
在这个示例输出中,场景 $1$ 的结果是,海狸 $1$ 打败了海狸 $2$,海狸 $2$ 打败了海狸 $3$,海狸 $3$ 打败了海狸 $1$。因此,海狸 $1$、$2$、$3$ 形成了“三元悖论”。没有其他方式选择 $3$ 只海狸,所以有确切地 $1$ 种方式选择 $3$ 只形成“三元悖论”的海狸。
对应场景 $1$ 的另一个输出如下。
Yes 1 01
在场景 $2$ 中,没有任何与信息相符的比赛结果。因此,输出 No。
这个示例输入满足子任务 $2,3,4,5,6$ 的约束条件。
样例解释 2
在这个示例输出中,场景 $1$ 的结果是,海狸 $1$ 打败了海狸 $4$,海狸 $4$ 打败了海狸 $3$,海狸 $3$ 打败了海狸 $1$。因此,海狸 $1,3,4$ 形成了“三元悖论”。还有两种其他方式选择 $3$ 只形成“三元悖论”的海狸:选择海狸 $2,3,4$ 和选择海狸 $3,4,5$。因此,有确切地 $3$ 种方式选择 $3$ 只形成“三元悖论”的海狸。
这个示例输入满足所有子任务的约束条件。
约束条件
- $1 \leq Q$.
- $3 \leq N \leq 5000$.
- $0 \leq M \leq \frac{1}{6} N(N - 1)(N - 2)$.
- $Q$ 个场景中 $N$ 的总和不超过 5000
- 给定值均为整数。
子任务
- (5 分) $M \leq N - 2$.
- (4 分) $Q$ 个场景中 $N$ 的总和不超过 7。
- (23 分) $Q$ 个场景中 $N$ 的总和不超过 20。
- (30 分) $Q$ 个场景中 $N$ 的总和不超过 150。
- (15 分) $Q$ 个场景中 $N$ 的总和不超过 600。
- (23 分) 无额外约束。