QOJ.ac

QOJ

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

#3076. Juego 2048

Statistics

Algunos juegos de ordenador son extremadamente divertidos, y este problema puede tratar sobre uno de ellos.

Se te da una secuencia de bloques unidimensionales, cada uno con una longitud que es una potencia de dos. El objetivo del juego es fusionar todos los bloques en un único bloque grande. Los bloques se presentan uno a uno y, para cada uno, debes decidir si pegarlo inmediatamente a la izquierda o inmediatamente a la derecha de los bloques anteriores.

Cada vez que dos bloques del mismo tamaño son adyacentes, se fusionan en un bloque cuya longitud es el doble de la de cada uno. Observa que, mientras sea posible, los bloques resultantes se fusionan inmediatamente con los adyacentes. Por ejemplo, si la secuencia actual es $2,4,16$, pegar $2$ a la izquierda da $8,16$, mientras que pegarlo a la derecha da $2,4,16,2$. En cualquier momento hay como máximo un par de bloques que se pueden fusionar.

Has perdido el juego (¡otra vez!) y te preguntas si había alguna forma de ganar. Analiza la secuencia para averiguarlo.

Entrada

La primera línea de la entrada contiene el número de casos de prueba $T$. A continuación se describen los casos de prueba:

Cada caso de prueba consta de dos líneas. La primera contiene un entero positivo $n\le1\,000$, la longitud de la secuencia. La siguiente línea contiene una secuencia de $n$ longitudes de bloques, cada una una potencia de dos. La suma de todas las longitudes no supera $2^{13}$.

El tamaño del archivo de entrada no supera 0.4 MiB.

Salida

Para cada caso de prueba, imprime una línea con la palabra «no» si no es posible ganar el juego. De lo contrario, imprime una palabra de $n$ letras «l» y «r» que indique si el bloque correspondiente debe pegarse a la izquierda o a la derecha. Para el primer bloque no importa la elección.

Ejemplos

Entrada 1

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

Salida 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.