QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 512 MB Total points: 100

#11069. 停不下来的游戏

Statistics

有些电脑游戏非常有趣,本题就与其中一款有关。

你得到了一串一维方块,每个方块的长度都是 2 的幂。游戏的目标是将所有方块合并成一个大方块。方块会一个接一个地出现,对于每一个方块,你必须决定将其紧贴在当前已有方块序列的左侧还是右侧。

每当两个相同大小的方块相邻时,它们就会合并成一个长度为原来两倍的方块。注意,只要可能,合并后的方块会立即与相邻的方块继续合并。例如,如果当前的方块序列是 2, 4, 16,那么在左侧添加 2 会得到 8, 16,而在右侧添加 2 则得到 2, 4, 16, 2。注意,在任何时刻,最多只会存在一对可合并的方块。

你(又一次)输掉了游戏,你想知道是否曾经有获胜的方法。请分析该序列以找出答案。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是各测试用例的描述:

每个测试用例包含两行。第一行包含一个正整数 $n \leqslant 1000$,表示序列的长度。下一行包含一个长度为 $n$ 的方块序列,每个方块的长度都是 2 的幂。所有长度之和不超过 $2^{13}$。

输出格式

对于每个测试用例,如果无法赢得游戏,输出一行单词 no。否则,输出一个由 $n$ 个字母 lr 组成的单词,表示对应的方块应该放置在左侧还是右侧。注意,对于第一个方块,放置在哪一侧均可。

样例

输入 1

3
9
2 8 4 1 1 4 4 4 4
5
2 16 4 8 2
3
2 2 2

输出 1

rrrlllrrr
no
no

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.