uCoder | 1089 | Nível: 4 | Tempo Limite: 10
Poker
Adaptado por Erich Rodrigues
Competição: USP - Seletiva para Maratona de Programação, 2013
Poker é jogado com um baralho tradicional de 52 cartas (13 valores com 4 naipes). Os valores das cartas, em ordem crescente, são: 2, 3,. . ., 10, Valete, Dama, Rei, Ás. Dada uma mesa de poker, com dois jogadores, sua tarefa é determinar quem ganhou.
Cada jogador possui duas cartas próprias e há cinco cartas comuns aos dois jogadores na mesa. Ganha quem conseguir uma mão de cinco cartas mais valiosa, entre as suas duas cartas próprias e as cinco cartas da mesa. Uma carta da mesa pode ser usada pelos dois jogadores ao mesmo tempo e a mão mais valiosa de um ou dos dois jogadores pode ser obtida ignorando as suas duas cartas próprias e usando as cinco comuns.
Para comparar duas mãos de cinco cartas, verifica-se em quais tipos da lista abaixo elas se encaixam. Se uma mão se encaixar em mais de um tipo, escolhe-se o mais valioso. Se as duas mãos se encaixarem num mesmo tipo, se aplica uma regra de desempate específica para este tipo.
A lista de tipos de mãos, ordenados do menos valioso para o mais valioso, e seus respectivos critérios de desempate é:
• Carta mais alta: qualquer mão que não se enquadre em nenhum dos demais tipos. No desempate, as cinco cartas são comparadas uma a uma, da mais valiosa para a menos, até uma mão apresentar uma carta com valor maior que o da outra.
• Um par: duas cartas de mesmo valor. O desempate é análogo ao da carta mais alta comparando primeiro o valor do par e depois as demais cartas;
• Dois pares: dois pares. O desempate é análogo ao da carta mais alta comparando primeiro o valor do par mais valioso, depois o valor do par menos valioso e por fim a carta restante;
• Trinca: três cartas de mesmo valor. O desempate é análogo ao do par;
• Straight: sequência de cinco cartas de valores consecutivos. Neste caso o Ás pode tomar o valor tanto de carta mais baixa (antes do 2) ou de mais alta (depois do Rei). O desempate é feito pela carta de maior valor, sendo que excepcionalmente o Ás tem o menor valor se aparecer antes do 2;
• Flush: cinco cartas do mesmo naipe. O desempate é feito pelo critério da carta mais alta;
• Full House: uma trinca e um par. No desempate é comparado primeiro o valor da trinca. Persistindo o empate, é comparado o valor do par;
• Quadra: quatro cartas com um mesmo valor. No desempate compara-se o valor da quadra e depois a carta restante;
• Straight Flush: straight e flush simultâneamente. O desempate é feito como no straight.
Note que é possível persistir o empate mesmo depois de aplicadas as regras de desempate. Os naipes das cartas só são considerados para definir um flush, não sendo considerados em nenhuma regra de desempate.
Entrada
A entrada é composta por diversas instâncias e termina com final de arquivo (EOF).
Cada instância é composta por três linhas. As duas primeiras linhas contêm a descrição de duas cartas cada uma, separadas por espaço. A primeira linha corresponde às cartas do primeiro jogador enquanto que a segunda corresponde às cartas do segundo jogador. A terceira linha contém a descrição das cinco cartas na mesa, também separadas por espaço.
A descrição de uma carta é dada por 2 caracteres, o primeiro indica o valor da carta e o segundo o seu naipe, conforme a tabela acima:
A entrada deve ser lida da entrada padrão.
Saída
Para cada instância, imprima uma linha contendo um número inteiro. Imprima 1 se o primeiro jogador ganha essa instância, imprima 2 caso o segundo ganhe e imprima 0 se houver um empate, mesmo depois de aplicadas as regras de desempate.
A saída deve ser escrita na saída padrão.
Restrições
• Todas as cartas fornecidas serão válidas e distintas.
Exemplo de Entrada | Exemplo de Saída |
---|---|
Te Je |
1 |