QOJ.ac

QOJ

时间限制: 2 s 内存限制: 512 MB 总分: 10

#5236. 专业版 [A]

统计

Bajtek 决定画一个由三角形组成的金字塔,如下图所示:

Bajtek 想要画的金字塔由 $N$ 层组成。最底层包含 $2N-1$ 个三角形,它们交替地尖端向上和尖端向下排列。每一层上方也以同样的方式放置三角形,但每一层比下一层少两个三角形。因此,上图展示了 $N=3$ 的情况。

Bajtek 有一个程序,允许他在屏幕上绘制类似的图形。屏幕上的一个点放置了一支笔,它可以在不同的角度绘制直线。Bajtek 的程序接受字母 A 到 F 作为指令——每个字母代表笔向可能的方向之一移动并绘制一段线段,具体遵循下图:

例如,指令序列 FBBBFBFBFBFBBBFBFBFB 将绘制出如下的折线:

Bajtek 程序的新版本允许接受更复杂的指令:除了字母外,还可以使用数字,表示某个指令序列的多次重复。具体来说:

  • 形如 $kZ$ 的字符串,其中 $k \in \{1, 2, 3, 4, 5, 6, 7, 8, 9\}$ 且 $Z \in \{A, B, C, D, E, F\}$,表示与 $Z\dots Z$($k$ 个字母 $Z$)相同;
  • 形如 $k[S]$ 的字符串,其中 $k \in \{1, 2, 3, 4, 5, 6, 7, 8, 9\}$,$S$ 是某个字符串,表示与 $S\dots S$($k$ 个字符串 $S$)相同;字符串 $S$ 本身也可以包含进一步的数字结构。

例如,3[2A] 等于 AAAAAA,而上图中的折线也可以通过更短的字符串实现,例如 F3B3[FB]F3B3[FB]2[F3BFBFBFB] 甚至 2[F3B3[FB]]。请注意,其中 $k$ 大于 9 的字符串(如 10A58[AB])是不允许的。

回到 Bajtek 的第一个金字塔。Bajtek 希望用他的程序指令序列来实现它。他有一个额外的条件:他希望笔永远不要在同一条线上重复绘制(由于程序中的一个小 bug,重复绘制会导致线条稍微变粗,这让 Bajtek 的审美感到不适)。例如,字符串 2[FBD] 违反了这一原则——三角形的每一条边都会被绘制两次。Bajtek 的第二个要求是程序长度不超过 150,000 个字符。

Bajtek 雇佣你来构建一个合适的指令序列。编写一个程序,对于给定的 $N$,输出生成高度为 $N$ 的金字塔的字符序列。我们假设笔最初位于金字塔的左下角。正如 IT 项目中常见的那样,你可以违反客户的要求。这意味着你的程序可以重复经过同一条线,或者(稍微)超过 150,000 个字符的限制,但这会让你付出代价——在这种情况下,你将获得更少的积分。具体的评分规则在“评分”部分给出。

输入格式

输入的第一行(也是唯一一行)包含一个整数 $n$ ($1 \le n \le 10^{18}$),表示金字塔的层数。

输出格式

输出的第一行(也是唯一一行)应包含一个长度不超过 150,000 的指令序列,该序列能正确构建一个由恰好 $n$ 层组成的金字塔。

评分

  • 如果你的字符串正确且长度不超过 150,000 个字符,你将获得该测试组的满分。
  • 如果你的程序绘制了某条边多次,你将无法获得该测试组的任何分数。
  • 如果你的程序长度超过 150,000 个字符,你将无法获得该测试组的任何分数。

样例

样例输入 1

3

样例输出 1

2[FB]2DE2AECEAE3[C]A

说明

SIO2 系统的“文件”部分,你可以找到题目中提到的 narysuj.py 脚本。

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.