QOJ.ac

QOJ

Límite de tiempo: 3 s Límite de memoria: 512 MB Puntuación total: 100

#3668. 建造楼梯

Estadísticas

小 Barney 刚从父母那里得到了一套新的玩具积木。他的积木套装里有 $n$ 个相同的立方体。Barney 立即开始用这些积木搭建各种物体。

Barney 最近搭建的东西是“楼梯”。楼梯由一座或多座立方体塔组成,塔的高度从左到右呈非递增排列。在下图中,你可以看到三个形状各异、均由 12 个立方体组成的物体。前两个是楼梯,而第三个不是。

Barney 注意到,对于某些楼梯,如果你将头向右旋转 90 度,你会看到同样的楼梯,但方向相反!他称这样的楼梯为“对称”的。例如,上面的第一个楼梯是对称的,但第二个不是。形式化地讲,一个楼梯是对称的,当且仅当将图片关于直线 $x = y$ 进行反射后,你得到的仍然是同一个楼梯(其中 $x$ 轴水平向右, $y$ 轴垂直向上)。

Barney 想要用他所有的 $n$ 个立方体搭建一个对称的楼梯。请向他展示如何做到这一点!

输入格式

输入仅一行,包含一个整数 $n$ —— Barney 手中立方体的数量 ($1 \le n \le 100$)。

输出格式

如果无法用 $n$ 个立方体搭建出对称的楼梯,输出一个整数 $-1$。

否则,在第一行输出一个整数 $m$ —— 楼梯图片中的行数和列数 ($1 \le m \le 100$)。然后,输出 $m$ 行来描述这个楼梯。每一行必须包含恰好 $m$ 个字符,字符为 ‘o’(小写英文字母)或 ‘.’,其中 ‘o’ 表示一个有立方体的单元格,‘.’ 表示一个空单元格。总共必须恰好有 $n$ 个 ‘o’ 字符。左下角的单元格必须包含一个立方体。如果存在多种解,输出其中任意一个即可。

样例

输入 1

3

输出 1

3
...
o..
oo.

输入 2

17

输出 2

5
o....
ooo..
oooo.
oooo.
ooooo

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.