Voltar

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
Tp Jp
Qe Qp Ke Kp Ae
Ae 7o
Ac 8e
Ap Ao 9e Jc Kp
Ae 7o
Ac 8e
Ap Ao 6e 3c Kp

1
0
2