QOJ.ac

QOJ

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

#8688. Quartetos

Statistics

Você está observando um grupo de crianças se divertindo em uma partida amistosa de Quartets. Em certo momento, começa a suspeitar que algumas estão trapaceando. As próprias crianças não parecem se incomodar com isso. Pelo contrário, acham ainda mais divertido, especialmente quando alguém é pego trapaceando. Como programador, você imediatamente começa a pensar em maneiras de detectar trapaças apenas observando a partida.

Quartets é um jogo de cartas para quatro jogadores que usa um baralho de $32$ cartas dividido em $8$ conjuntos de $4$ cartas. As cartas reais costumam conter imagens educativas, ajudando a aprender tanto objetos individuais como sua classificação. Por exemplo, podem mostrar animais, e os conjuntos podem corresponder a diferentes grupos de animais (mamíferos, répteis etc.).

problem_8688_c012c73f8edd38ed2a0cf5aef1ad487e.jpg

Quatro cartas de um conjunto, de um baralho alemão de Quartets de Wilhelm Busch, via Wikimedia Commons, domínio público.

No início, cada jogador recebe $8$ cartas, e o jogador $1$ inicia seu turno. Em cada turno, um jogador pergunta a outro se possui uma carta específica. Se o jogador consultado a tiver, deve entregá-la ao solicitante, que continua seu turno pedindo outra carta a qualquer jogador. Se não a tiver, o solicitante perde o turno e o jogador consultado começa o seu. Uma regra importante exige que o solicitante já tenha pelo menos uma carta do mesmo conjunto da carta solicitada.

Se, durante seu turno, um jogador tiver um conjunto completo («quarteto»), poderá mostrá-lo aos demais, colocá-lo de lado e ganhar um ponto. As quatro cartas são removidas permanentemente da partida. Se em qualquer momento um jogador ficar sem cartas, ele sai do jogo. Se era seu turno, ele passa ao próximo jogador na ordem $1$-$2$-$3$-$4$-$1$-$\ldots$ que ainda tenha cartas. Se ninguém tiver cartas, a partida termina e vence quem tiver mais pontos.

Não é permitido pedir cartas já removidas da partida, nem pedir uma carta a um jogador que saiu do jogo.

Há duas situações em que pode ocorrer trapaça em Quartets, quando alguém afirma falsamente ter (ou não ter) uma carta. Especificamente, há trapaça se

  • um jogador pede uma carta sem ter nenhuma carta do conjunto correspondente, ou

  • um jogador consultado afirma não ter a carta solicitada, embora a tenha.

Naturalmente, a trapaça costuma ser descoberta mais tarde. Em teoria, um oponente atento pode acabar descobrindo qualquer trapaça, pois todas as cartas são reveladas em algum momento antes do fim da partida.

Pedir uma carta que o jogador consultado não pode ter (por exemplo, porque o solicitante a tem em sua própria mão) não é uma jogada inteligente, mas, por si só, não é considerado trapaça.

Entrada

A primeira linha contém um inteiro $n$ ($1 \le n \le 1000$), o número de ações consecutivas em uma partida de Quartets, desde seu início. As próximas $n$ linhas descrevem uma ação cada. Cada ação ocupa uma linha e pode ser uma das seguintes:

  • x A y sk yes — o jogador $x$ pede ao jogador $y$ a carta $sk$, e o jogador $y$ entrega essa carta ao jogador $x$;

  • x A y sk no — o jogador $x$ pede ao jogador $y$ a carta $sk$, o jogador $y$ afirma não tê-la e inicia seu turno;

  • x Q s — o jogador $x$ coloca de lado o quarteto $s$.

Em todas as ações, $x$ e $y$ ($1 \le x,y \le 4$, $x \ne y$) são inteiros que indicam os jogadores; $s$ ($1 \le s \le 8$) é um inteiro de um dígito que corresponde a um conjunto/quarteto; e $k \in \{\mathrm{A},\mathrm{B},\mathrm{C},\mathrm{D}\}$ é um caractere que identifica as quatro cartas de um conjunto. Assim, as cartas $sk$ são rotuladas 1A, 1B, 1C, 1D, 2A, 2B, …, 8C, 8D. As quatro cartas com o mesmo primeiro dígito formam um conjunto.

A sequência dada descreve uma partida válida entre quatro jogadores. Isto é, exceto pelas duas formas possíveis de trapaça mencionadas, todas as ações cumprem todas as regras.

Saída

Se existir uma distribuição inicial possível das cartas tal que a sequência corresponda a uma partida (possivelmente parcial) em que todos seguem as regras, imprima yes. Caso contrário, imprima no e, na linha seguinte, o número da primeira ação após a qual é certo que algum jogador trapaceou. As ações são numeradas consecutivamente a partir de $1$; colocar quartetos de lado também conta como ação.

Exemplos

Entrada 1

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

Saída 1

no
4

Nota

Os jogadores $1$ e $2$ afirmam não ter 3C, e nenhum deles tinha 3A ou 3D. Portanto, um deles mentiu ao afirmar não ter 3C, ou pediu 3C sem ter 3B (a única carta restante do conjunto $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

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