小 D 最近学了有限自动机上用 LCC 维护的有限群分治 DFT,并得意的到处显摆。
大 D 看不下去了,给小 D 出了一个难题,对于字符集大小为 $2$ 的非确定性有限自动机 $G=(V,E_0,E_1,v_0,F)$,定义 $L(G)$ 为最短的不可被 $G$ 接受的 01
串长度,如果不存在则为 $0$,大 D 限制了 $|V|\leq n$,你需要造一个自动机 $G$ 使得 $L(G)$ 尽可能大。
这里给出自动机的粗略定义:
- $V$ 表示点集。
- $E_0,E_1$ 分别是两个定义在 $V$ 上的有向边集。
- $v_0\in V$ 表示起始点。
- $F\subset V$ 表示接受点集。
- 自动机 $G$ 接受长为 $k$ 的
01
串 $S$ 当且仅当存在一个点序列 $v_0,v_1,\cdots,v_k$ 满足 $v_k\in F$ 且 $(v_{i-1},v_i)\in E_{S_i}$。
输入格式
一行一个整数 $n$。
输出格式
输出自动机 $G$。这里要求 $V=\{0,1,\cdots,n-1\},v_0=0$。
首先输出 $E_0$,形如:
第一行一个整数 $|E_0|\in [0, 1000]$。
接下来 $|E_0|$ 行每行两个整数 $u,v$ 表示一条边 $(u,v)$。
接下来以相同格式输出 $E_1$。
接下来输出 $F$,格式如下:
第一行一个整数 $|F|$。
接下来 $|F|$ 个整数表示 $F$ 内的元素。
样例
input
3
output
2 0 0 2 2 4 0 1 1 0 0 2 2 1 3 0 1 2
explanation
最短的不可被接受的字符串是 1010
。
数据范围与提示
本题只有两组数据:
第一组数据 $n=6$,你的得分为 $50\max(0, \min(1, \frac{L(G)-11}{10}))$。
第二组数据 $n=20$,你的得分为 $50\max(0, \min(1, \frac{\sqrt{L(G)}}{20}))$。