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 个字符。

青少年信息学奥林匹克(OIJ)是面向初学者的比赛,因此原题中对金字塔高度的限制非常低。然而,在 Potyczki Algorytmiczne 中参赛的是专业选手,我们期望大家能够使用长度不超过 150,000 的指令序列,构建出高度达 $10^{18}$ 层的金字塔。

本题的任务说明与 OIJ 的原题基本相同,但有以下几点重要区别:

  • 我们不强制要求笔的初始位置在金字塔的左下角(你可以从任意点开始)。
  • 如果你的指令序列长度超过 150,000 个字符,你将无法获得该测试点的任何分数(直接得 0 分)。
  • 如果你的笔多次绘制了同一条线段,你将无法获得该测试点的任何分数(直接得 0 分)。

注意:在 OIJ 官网上也可以找到该题的解题思路简述。但我们不保证其中的信息对解决本题(专业版)有任何帮助。

输入格式

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

输出格式

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

样例

输入格式 1

3

输出格式 1

2[FB]2DE2AECEAE3[C]A

说明

在 SIO2 系统的“文件”部分,你可以找到题目中提到的 OIJ 脚本 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.