QOJ.ac

QOJ

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

#3076. Jogo 2048

Statistics

Alguns jogos de computador são extremamente divertidos, e este problema pode ser sobre um deles.

É dada uma sequência de blocos unidimensionais, cada um com comprimento igual a uma potência de dois. O objetivo do jogo é fundir todos os blocos num único bloco grande. Os blocos são apresentados um a um e, para cada um, deves decidir se o colas imediatamente à esquerda ou imediatamente à direita dos blocos anteriores.

Sempre que dois blocos do mesmo tamanho são adjacentes, fundem-se num bloco com o dobro do comprimento de cada um. Nota que, enquanto for possível, os blocos resultantes fundem-se imediatamente com os adjacentes. Por exemplo, se a sequência atual for $2,4,16$, colar $2$ à esquerda resulta em $8,16$, enquanto colá-lo à direita resulta em $2,4,16,2$. Em qualquer instante existe, no máximo, um par de blocos que pode ser fundido.

Perdeste o jogo (outra vez!) e perguntas-te se havia alguma maneira de ganhar. Analisa a sequência para descobrir.

Entrada

A primeira linha da entrada contém o número de casos de teste $T$. Seguem-se as descrições dos casos de teste:

Cada caso de teste consiste em duas linhas. A primeira contém um inteiro positivo $n\le1\,000$, o comprimento da sequência. A linha seguinte contém uma sequência de $n$ comprimentos de blocos, cada um uma potência de dois. A soma de todos os comprimentos não excede $2^{13}$.

O tamanho do ficheiro de entrada não excede 0.4 MiB.

Saída

Para cada caso de teste, escreve uma linha com a palavra «no» se não for possível ganhar o jogo. Caso contrário, escreve uma palavra de $n$ letras «l» e «r», indicando se o bloco correspondente deve ser colado à esquerda ou à direita. Para o primeiro bloco, a escolha é indiferente.

Exemplos

Entrada 1

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

Saída 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.