QOJ.ac

QOJ

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

#8688. Cuartetos

Statistics

Estás viendo a un grupo de niños divertirse jugando una partida amistosa de Quartets. En cierto momento empiezas a sospechar que algunos hacen trampas. A los propios niños no parece importarles en absoluto. Al contrario, eso les resulta aún más divertido, especialmente cuando alguien es descubierto. Como programador, enseguida empiezas a pensar cómo detectar trampas simplemente observando la partida.

Quartets es un juego de cartas para cuatro jugadores que utiliza una baraja de $32$ cartas dividida en $8$ grupos de $4$ cartas cada uno. Las cartas reales suelen contener imágenes educativas, que ayudan a aprender tanto objetos individuales como su clasificación. Por ejemplo, pueden mostrar animales y los grupos corresponder a distintas clases de animales (mamíferos, reptiles, etc.).

problem_8688_c012c73f8edd38ed2a0cf5aef1ad487e.jpg

Cuatro cartas de un grupo, de una baraja alemana de Quartets de Wilhelm Busch, a través de Wikimedia Commons, dominio público.

Al comenzar, cada jugador recibe $8$ cartas y el jugador $1$ inicia su turno. En cada turno, un jugador pregunta a otro si tiene una carta concreta. Si el jugador preguntado la tiene, debe dársela al solicitante, quien continúa su turno pidiendo otra carta a cualquiera de los jugadores. Si el preguntado no tiene la carta, el solicitante pierde el turno y el preguntado comienza el suyo. Una regla importante establece que el solicitante ya debe tener al menos una carta del mismo grupo que la carta que pide.

Si durante su turno un jugador tiene un grupo completo («cuarteto»), puede mostrárselo a los demás, apartarlo y ganar un punto. Las cuatro cartas se retiran permanentemente de la partida. Si en algún momento un jugador se queda sin cartas, abandona el juego. Si era su turno, pasa al siguiente jugador en el orden $1$-$2$-$3$-$4$-$1$-$\ldots$ que aún tenga cartas. Si ningún jugador tiene cartas, termina la partida y gana quien tenga más puntos.

No se permite pedir cartas que ya se hayan retirado de la partida ni pedir una carta a un jugador que haya abandonado el juego.

En Quartets puede haber trampas en dos situaciones en las que un jugador afirma falsamente tener (o no tener) alguna carta. En concreto, hay trampas si

  • un jugador pide una carta aunque no tiene ninguna del grupo correspondiente, o

  • un jugador preguntado afirma no tener la carta solicitada aunque sí la tiene.

Por supuesto, las trampas suelen descubrirse más tarde. En teoría, un oponente atento puede acabar descubriendo cualquier trampa, ya que todas las cartas se revelan en algún momento antes de que termine la partida.

Pedir una carta que el preguntado no puede tener (por ejemplo, porque está en la mano del propio solicitante) no es una jugada muy inteligente, pero no se considera trampa por sí sola.

Entrada

La primera línea contiene un entero $n$ ($1 \le n \le 1000$), el número de acciones consecutivas de una partida de Quartets desde su comienzo. Las siguientes $n$ líneas describen una acción cada una. Cada acción ocupa una línea y puede ser una de las siguientes:

  • x A y sk yes — el jugador $x$ pide al jugador $y$ la carta $sk$, y el jugador $y$ se la entrega al jugador $x$;

  • x A y sk no — el jugador $x$ pide al jugador $y$ la carta $sk$, el jugador $y$ afirma no tenerla y comienza su turno;

  • x Q s — el jugador $x$ aparta el cuarteto $s$.

En todas las acciones, $x$ e $y$ ($1 \le x,y \le 4$, $x \ne y$) son enteros que identifican jugadores; $s$ ($1 \le s \le 8$) es un entero de una cifra que identifica un grupo o cuarteto; y $k \in \{\mathrm{A},\mathrm{B},\mathrm{C},\mathrm{D}\}$ es un carácter que distingue las cuatro cartas de un grupo. Así, las cartas $sk$ tienen las etiquetas 1A, 1B, 1C, 1D, 2A, 2B, …, 8C, 8D. Las cuatro cartas que comparten la primera cifra forman un grupo.

La secuencia dada describe una partida válida entre cuatro jugadores. Es decir, salvo las dos posibles formas de hacer trampas descritas, todas las acciones cumplen todas las reglas.

Salida

Si existe una distribución inicial posible de las cartas para la cual la secuencia corresponde a una partida (posiblemente parcial) en la que todos cumplen las reglas, imprime yes. En caso contrario, imprime no y, en la siguiente línea, el número de la primera acción después de la cual se puede asegurar que algún jugador hizo trampas. Las acciones se numeran consecutivamente desde $1$; también se cuentan las acciones de apartar cuartetos.

Ejemplos

Entrada 1

4
1 A 2 3C no
2 A 3 3A yes
2 A 4 3D yes
2 A 1 3C no

Salida 1

no
4

Nota

Los jugadores $1$ y $2$ afirman no tener 3C, y ninguno tenía 3A ni 3D. Por tanto, uno mintió al afirmar no tener 3C, o pidió 3C sin tener 3B (la única carta restante del grupo $3$).

Entrada 2

6
1 A 2 3C no
2 A 3 3A yes
2 A 4 3D yes
2 A 1 3B no
1 A 4 5B yes
1 Q 5

Salida 2

yes

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.