Póker P11879


Statement
 

pdf   zip

html

Pau Gargallo y sus amigos están reunidos en un albergue, decidiendo en qué orden tomarán la salida para la ya clásica carrera invernal sobre la nieve. Fuera hace un frío que pela y nadie quiere salir el primero.

–ਐDecidámoslo a piedra, papel o tijeras! –propone alguien.

La sugerencia es acogida con escepticismo: ਐla decisión duraría una eternidad, porque hay más de mil corredores! Pau interviene para proponer una idea más sensata.

–Casualmente, aquí tengo unos cuantos centenares de barajas de póker. Nos lo jugaremos a una sola mano de póker: repartiré cinco cartas a cada uno de vosotros, y la mano más baja saldrá primero, a continuación la siguiente, etc.

–¿Y en caso de empate? –propone otra persona.

–Si se diera el improbable caso –responde Pau– aquellos que empataran saldrían según el orden alfabético de sus nombres. O sea, quien apareciera antes en el diccionario, saldría antes a correr.

Conociendo los nombres y las cartas de cada uno de los amigos de Pau, ¿serías capaz de decirnos en qué orden saldrán?

A continuación explicamos las reglas del póker, tal y como se entiende en este problema.

Explicación de las reglas del póker

Una mano de póker está formada por 5 cartas. Usamos baraja inglesa (las cartas son, de menor a mayor valor, los números del 2 al 10, las figuras J, Q, K, y el as A). No hay comodines. Como hay varias barajas, una mano puede tener varias copias de la misma carta.

Decimos que dos cartas del mismo número forman una pareja, tres un trío, cuatro un póker y cinco un repóker. Una escalera son cinco cartas consecutivas siguiendo el orden AKQJ−10−9−8−7−6−5−4−3−2−A (el as ’A’ puede ser tanto la carta más alta como la más baja de la escalera: AKQJ−10 es la escalera más alta posible, y 5−4−3−2−A la más baja).

Las manos se ordenan del modo siguiente, de más alta a más baja:

  • Repóker.
  • Escalera real (escalera con todas las cartas del mismo palo).
  • Póker.
  • Full (un trío y una pareja).
  • Color (todas las cartas del mismo palo).
  • Escalera.
  • Trío.
  • Doble pareja.
  • Pareja.
  • Nada (carta más alta).

Si una mano cae dentro de varias categorías (por ejemplo, un trío y un color a la vez, situación que puede pasar porque usamos varias barajas) se considera que la categoría de la mano es la más alta (en el ejemplo, la mano sería un color).

Para desempatar dos manos del mismo tipo se sigue el criterio siguiente:

  • Escalera: gana la escalera que tiene la carta más alta (exceptuando el caso 5−4−3−2−A, donde se considera que la carta más alta es el 5, y no el as).
  • Repóker, póker, trío, pareja: gana la que está formada por cartas de más valor.
  • Full: gana la mano que tenga el trío de más valor. En caso de empate, la pareja de más valor.
  • Doble pareja: gana la pareja de más valor. En caso de empate, gana quien tenga la segunda pareja de más valor.

Si este criterio no desempata las manos, entonces se comparan los valores de todas las cartas. Gana quien tenga la carta más alta. En caso de empate, se compara la siguiente, etc. Por lo tanto, el único modo de que dos manos empaten es que tengan exactamente cartas con los mismos números.

Entrada

En una línea el número n de amigos de Pau (os garantizamos que Pau tiene al menos 2 amigos pero no más de 2500). A continuación n líneas, cada una de las cuales contiene una palabra (el nombre del amigo, formado por letras mayúsculas y minúsculas, sin espacios) y las 5 cartas que recibe, separadas también por espacios. Una carta es un par N P, donde N es el número de la carta (2, 3, …, 9, 10, J, Q, K, A) y P es el palo de la carta (S, H, D o C).

Todos los amigos tienen nombres distintos.

Salida

Escribid, en n líneas, los nombres de los amigos de Pau, en el orden en el que tomarán la salida de la carrera.

Pista Este problema es complicado, ya que es demasiado fácil cometer algún pequeño despiste al realizar el programa. Estáis avisados.

Public test cases
  • Input

    10
    icaocn 7 C 4 H A S 8 C J S
    actleqcmh 7 H A S 7 S 10 S 7 H
    chqcehsw A C 6 D 5 C 5 D 4 S
    lpnjv 8 H 9 S 2 C 2 C A H
    cgtvacjmn 5 H 4 S J S 7 C K C
    pwcsu 5 H 8 H 7 C 9 D 8 S
    gornv J D Q C A H Q C A C
    tuvntkr 9 S 5 S 10 S 5 S J D
    ndrxtjgv J C 9 S 10 S 8 S K H
    bwhpkjzyf Q S 8 S K S K S K D
    

    Output

    cgtvacjmn
    ndrxtjgv
    icaocn
    lpnjv
    tuvntkr
    chqcehsw
    pwcsu
    gornv
    actleqcmh
    bwhpkjzyf
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++