Todo al rojo

Tiempo límite 1 s
Memoria límite 256 MB
Casos de prueba 82
Dificultad Fácil Algoritmos
Mostrar (2) InteractivoSimulación
Enviar solución

Puntos: 5

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

Autor: Martín Andrighetti

Tiempo límite: 1 segundo

Memoria límite: 256 megabytes

Lamentablemente, Nacho perdió los fondos del campamento de programación apostando en la ruleta. Como necesita los fondos urgentemente, Nacho buscó una manera rápida de hacer dinero, y solo conoce una: apostar en la ruleta.

La ruleta es un aparato con forma de anillo dividido en \(M\) casillas, numeradas del \(1\) al \(M\) en sentido horario. Notar que las casillas son cíclicas: después de la casilla \(i\) viene la casilla \(i+ 1\), con la excepción que después de la casilla \(M\) viene la casilla \(1\). Cada casilla está pintada de rojo o de negro. En una de las casillas hay una bolita invisible.

El juego de la ruleta sucede en rondas. Al comenzar una ronda, Nacho realiza su apuesta e intenta adivinar si la bolita caerá en una casilla roja o negra. Luego, el operador gira la ruleta y la bolita avanza una cierta cantidad de casillas en sentido horario, cayendo en una nueva casilla. Al finalizar la ronda, Nacho gana su apuesta si la bolita cae en una celda del color que adivinó, y pierde en caso contrario.

Al principio Nacho está desorientado, sobre todo porque la bolita es invisible. Sin embargo, escucha con atención y hace una observación clave: la bolita invisible siempre avanza la misma cantidad de casillas por ronda. ¿Puedes ayudarlo a recuperar los fondos?

Entrada

En la primera línea recibirás dos enteros: \(M\) (\(1 \le M\le 10^{3}\)) y \(T\) (\(10M\le T\le 10^{4}\)), la cantidad de casillas en la ruleta y la cantidad de rondas que jugará Nacho.

La segunda línea consistirá de \(M\) caracteres, cada uno pudiendo ser R o N. Si el \(i\)-ésimo caracter es R entonces la \(i\)-ésima casilla es roja, y si el \(i\)-ésimo caracter es N entonces la \(i\)-ésima casilla es negra.

Luego, comenzará la sección interactiva de tu programa. ¡Presta especial atención al orden en que debes realizar las operaciones de leer e imprimir!

Interacción

Para cada una de las \(T\) rondas, debes imprimir una línea con la palabra “ROJO” o la palabra “NEGRO”, representando respectivamente si apuesta al rojo o al negro.

Solo después de que imprimas esta línea, el operador girará la ruleta y debes leer una línea que contendrá la palabra “GANASTE” si Nacho ganó la apuesta (el color resultante coincide con la apuesta hecha), o “PERDISTE” si Nacho perdió la apuesta (el color resultante difiere de la apuesta hecha).

Después de \(T\) rondas tu programa debe terminar. Se considerará tu programa como correcto si Nacho gana al menos el \(90\%\) de las apuestas.

Ejemplos

Entrada 1 Salida 1
5 3
RNNRN
ROJO
PERDISTE
NEGRO
GANASTE
ROJO
GANASTE

El ejemplo anterior es sólo para demostrar la interacción. Se utilizan líneas en blanco para representar el orden de las de lecturas y escrituras. No debes leer ni escribir líneas en blanco en tu programa. Notar que en este ejemplo no se cumple la restricción \(10M\le T\), y además Nacho gana menos del \(90\%\) de las apuestas.

Este problema es interactivo, por lo que en algunos momentos es importante que imprimas antes de continuar leyendo. Algunos lenguajes no imprimen inmediatamente al realizar una operación de impresión, por lo que es necesario realizar una operación de flush manualmente:

  • Python: Agregar el parámetro flush al imprimir: print(..., flush=True)
  • C++: Utilizar std::cout << std::flush; tras imprimir.
  • C: Utilizar fflush(stdout); tras imprimir.
  • Otros lenguajes: Referir a la documentación.

Comentarios

No hay comentarios por el momento.