#314. #540. 「LibreOJ NOIP Round #1」游戏
#540. 「LibreOJ NOIP Round #1」游戏
说明
小 L 计划进行 nnn 场游戏,每场游戏使用一张地图,小 L 会同时使用三辆车在该地图上完成游戏。
小 L 的赛车有三辆,分别用大写字母 A、B、C 表示。地图是一张无向简单图(没有重边或自环),每次他会在地图中选择不同的三个点 iii,jjj,kkk,满足 i<j<ki<j<ki<j<k,且两两之间均有边。此时他会让 A 从 iii 到 jjj ,B 从 jjj 到 kkk,C从 kkk 到 iii,完成一场游戏。他记得有一张地图使得他恰好能完成 nnn 场不同的游戏,且这个地图顶点数不超过 500500500,请你帮他找到这张地图。
有时候小 LLL 会记得地图的一些特点,他会把这些告诉你以帮助你找到地图。
也就是说,给一个正整数 nnn,请你构造一个无向简单图使得其三元环个数为 nnn。
输入格式
输入第一行一个正整数 nnn。
输出格式
输出第一行一个正整数 xxx 表示地图中点的个数。满足 1≤x≤5001\le x\le 5001≤x≤500。
接下来输出你找到的地图的上三角邻接矩阵。具体来说格式如下:
这部分一共输出 x−1x-1x−1 行,其中第 iii 行共 x−ix-ix−i 个数,第 iii 行第 jjj 个数表示点 iii 和点 i+ji+ji+j 是否有边,只能为 000 或 111:为 111 表示有,为 000 表示没有。
检验你的输出时,我们读取 xxx 之后的 x(x−1)2\frac{x(x-1)}{2}2x(x−1) 个整数,多余的空白或输出将被忽略。
样例
样例输入 1
3
样例输出 1
5
1 0 1 0
1 1 1
0 1
1
样例解释 1
样例输出描述的图如下:
更多样例
请从页面上方的附加文件处下载。
数据范围与提示
对于所有数据,1≤n≤2×1061\le n\le 2\times 10^61≤n≤2×106。
测试点编号 | nnn 的限制 | 特殊限制 |
---|---|---|
1 | ≤10\le 10≤10 | - |
2 | ≤20\le 20≤20 | |
3 | ≤30\le 30≤30 | |
4 | ≤100\le 100≤100 | |
5 | ||
6 | ≤200\le 200≤200 | |
7 | ≤400\le 400≤400 | |
8 | ≤1000\le 1000≤1000 | |
9 | ||
10 | ≤3000\le 3000≤3000 | |
11 | ≤104\le 10^4≤104 | |
12 | ||
13 | ≤3×104\le 3\times 10^4≤3×104 | |
14 | ≤105\le 10^5≤105 | |
15 | ≤3×105\le 3\times 10^5≤3×105 | |
16 | ≤106\le 10^6≤106 | nnn 是某个正整数的立方 |
17 | 存在一个完全图满足条件 | |
18 | - | |
19 | ≤1.5×106\le 1.5\times 10^6≤1.5×106 | |
20 | ≤2×106\le 2\times 10^6≤2×106 |