JOI 王国举办了一场乒乓球比赛。共有 $N$ 只海狸参加了比赛,编号为 $1$ 到 $N$,比赛采用循环赛制。
你从 Bitaro 那里得到了关于比赛结果的以下信息:
- 比赛中没有平局。
- 恰好有 $M$ 种选择 3 只海狸的方法,使得它们构成“三难困境”(trilemma)。注意,3 只海狸 $i, j, k$ ($1 \le i < j < k \le N$) 构成“三难困境”当且仅当满足以下 2 个条件中的恰好一个:
- 海狸 $i$ 胜过海狸 $j$,海狸 $j$ 胜过海狸 $k$,且海狸 $k$ 胜过海狸 $i$。
- 海狸 $i$ 胜过海狸 $k$,海狸 $k$ 胜过海狸 $j$,且海狸 $j$ 胜过海狸 $i$。
你不知道 Bitaro 提供的信息是否正确,因此你决定思考是否存在符合 Bitaro 所述信息的比赛结果。
请编写一个程序,给定 Bitaro 提供的信息,判断是否存在符合该信息的比赛结果,如果存在,则找出其中一种比赛结果。
输入格式
测试用例包含 $Q$ 个场景,编号为 $1$ 到 $Q$。每个场景指定以下值:
- 参加比赛的海狸数量 $N$。
- 构成“三难困境”的 3 只海狸的选择方式数量 $M$。
输入数据的格式如下:
$Q$ (场景 1 的输入) (场景 2 的输入) ... (场景 $Q$ 的输入)
每个场景的输入数据格式如下:
$N \ M$
输出格式
按顺序输出场景 $1, 2, \dots, Q$ 的答案。
对于某个场景,如果存在符合信息的比赛结果,请按以下格式输出:
Yes $S_2$ $S_3$ ... $S_N$
其中 $S_i$ ($2 \le i \le N$) 是一个长度为 $i-1$ 的字符串,由字符 ‘0’ 或 ‘1’ 组成。$S_i$ 的第 $j$ 个字符为 ‘0’ 表示海狸 $i$ 被海狸 $j$ 击败,第 $j$ 个字符为 ‘1’ 表示海狸 $i$ 胜过海狸 $j$。如果存在多种结果,你可以输出其中任意一种。
对于某个场景,如果不存在符合信息的比赛结果,请输出:
No
数据范围
- $1 \le Q$
- $3 \le N \le 5\,000$
- $0 \le M \le \frac{1}{6}N(N - 1)(N - 2)$
- 所有场景的 $N$ 之和小于或等于 $5\,000$
- 给定值均为整数
子任务
- (5 分) $M \le N - 2$
- (4 分) 所有场景的 $N$ 之和小于或等于 $7$
- (23 分) 所有场景的 $N$ 之和小于或等于 $20$
- (30 分) 所有场景的 $N$ 之和小于或等于 $150$
- (15 分) 所有场景的 $N$ 之和小于或等于 $600$
- (23 分) 无附加限制
样例
输入格式 1
2 3 1 4 4
输出格式 1
Yes 0 10 No
说明
共有 $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 5 3
输出格式 2
Yes 0 11 001 0101
说明
在样例输出中场景 1 的结果里,海狸 1 胜过海狸 4,海狸 4 胜过海狸 3,海狸 3 胜过海狸 1。因此,海狸 1, 3, 4 构成三难困境。还有另外两种选择 3 只海狸构成三难困境的方法:选择海狸 2, 3, 4 和选择海狸 3, 4, 5。因此,恰好有 3 种选择 3 只海狸构成三难困境的方法。该样例输入满足所有子任务的限制。