有些电脑游戏非常有趣,本题就与其中一款有关。
你得到了一串一维方块,每个方块的长度都是 2 的幂。游戏的目标是将所有方块合并成一个大方块。方块会一个接一个地出现,对于每一个方块,你必须决定将其紧贴在当前已有方块序列的左侧还是右侧。
每当两个相同大小的方块相邻时,它们就会合并成一个长度为原来两倍的方块。注意,只要可能,合并后的方块会立即与相邻的方块继续合并。例如,如果当前的方块序列是 2, 4, 16,那么在左侧添加 2 会得到 8, 16,而在右侧添加 2 则得到 2, 4, 16, 2。注意,在任何时刻,最多只会存在一对可合并的方块。
你(又一次)输掉了游戏,你想知道是否曾经有任何获胜的方法。请分析该序列以找出答案。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是各测试用例的描述:
每个测试用例包含两行。第一行包含一个正整数 $n \le 1000$,表示序列的长度。下一行包含 $n$ 个方块的长度,每个长度都是 2 的幂。所有长度之和不超过 $2^{13}$。输入文件的大小不超过 0.4 MiB。
输出格式
对于每个测试用例,如果无法赢得游戏,输出一行单词 “no”。否则,输出一个由 $n$ 个字母 ‘l’ 和 ‘r’ 组成的单词,表示对应的方块应该被放置在左侧还是右侧。注意,对于第一个方块,放置在哪一侧均可。
样例
输入 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