Покер


Шешімді жөнелту

Ұпайлар: 1
Уақыт шектеуі: 2.0s
Жад шектеуі: 256M

Author:
Problem types
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Go, Java, Kotlin, Pascal, Perl, PHP, Python, Sed, Text

Стандартты 52 картадан тұратын колода төрт мастан тұрады: трефа (clubs), бубна (diamonds), черва (hearts) және пика (spades). Әр мастада 13 ранг бар: 2, 3, 4, 5, 6, 7, 8, 9, 10, валет, дама, король және туз, ең төменнен ең жоғарыға дейін тізілген. Карты екі символмен сипатталады: алдымен ранг ("2" …"9", "T" 10 үшін, "J", "Q", "K", "A"), содан кейін маста ("C" трефа үшін, "D" бубна үшін, "H" черва үшін, "S" пика үшін). Карталар тек ранг бойынша салыстырылады; маста тәртіпке әсер етпейді.

Покерлік қол бес түрлі картадан тұрады. Әр қолдың белгілі бір рейтингі бар. Жоғары рейтингке ие қол төмен рейтингке ие қолды жеңеді. Егер екі қолдың рейтингі бірдей болса, сәйкес салыстыру ережесі қолданылады. Егер қол бірнеше рейтингке сәйкес келсе, тек ең жақсысы ескеріледі.

Төменде покерлік комбинациялар ең нашардан ең жақсыға дейін тізілген.

High Card (жоғары карта). Қол ешбір жоғары комбинацияға сәйкес келмейді. Екі осындай қолды салыстырғанда, жоғары карталар салыстырылады; тең болған жағдайда — келесі жоғары карталар, және т.б. Мысал: QS JH 9C 7H 3D.

One Pair (бір жұп). Қол бір рангтағы екі картаны қамтиды. Салыстыру кезінде алдымен жұптың рангі салыстырылады; тең болған жағдайда қалған карталар төмендеу бойынша салыстырылады. Мысал: 6D 6H QD 9H 4S.

Two Pairs (екі жұп). Жоғары жұптар салыстырылады, содан кейін төменгі жұптар, содан кейін бесінші карта. Мысал: JH JS TS TD 8S.

Three of a Kind (сет). Қол бір рангтағы үш картаны қамтиды. Үштіктің рангі салыстырылады; тең болған жағдайда екі кикер салыстырылады. Мысал: 5S 5H 5D JH 6D.

Straight (стрит). Бес ретті ранг. Туз корольдан жоғары немесе екіден төмен болуы мүмкін, бірақ екеуі бір уақытта емес. Стриттер жоғары карта бойынша салыстырылады (стрит A 2 3 4 5 үшін жоғары карта 5 болып саналады). Мысал: QH JC TH 9D 8D.

Flush (флеш). Бір мастан бес карта. Жоғары карталар төмендеу бойынша салыстырылады. Мысал: AS JS 8S 6S 5S.

Full House (фулл-хаус). Бір рангтағы үш карта және басқа рангтағы екі карта. Үштіктің рангі, содан кейін жұптың рангі салыстырылады. Мысал: 7S 7H 7C JC JH.

Four of a Kind (каре). Бір рангтағы төрт карта. Каренің рангі салыстырылады, содан кейін бесінші карта. Мысал: 4C 4D 4H 4S TD.

Straight Flush (стрит-флеш). Стрит және флеш бір уақытта. Салыстыру стритке ұқсас. Мысал: TH 9H 8H 7H 6H.

Бұл тапсырмада екі ойыншы екі жеке карта алады. Сізге төрт түрлі карта берілген: бірінші ойыншының екі картасы және екінші ойыншының екі картасы. Қалған колодадан бес түрлі картаны таңдап, оларды үстелге жалпы карталар ретінде қою қажет. Бұл карталар ойыншылардың карталарымен сәйкес келмеуі керек.

Әр ойыншы қолындағы жеті картаның (екі картасы және бес жалпы карта) ішінен ең жақсы покерлік қолын құрастырады. Бірінші ойыншының ең жақсы қолы екінші ойыншының ең жақсы қолын нақты жеңетіндей бес жалпы картаны шығару қажет. Көптеген қолайлы нұсқалар болса, кез келгенін шығару рұқсат етіледі. Шешімнің бар екендігіне кепілдік беріледі.

Енгізу

Бірінші жолда \(T\) (\(1 \le T \le 2 \cdot 10^5\)) — тестілер саны.

Келесі \(T\) жолдың әрқайсысында төрт түрлі карта берілген форматта \[\texttt{A\_1 A\_2 B\_1 B\_2},\] мұндағы A_1 және A_2 — бірінші ойыншының карталары, ал B_1 және B_2 — екінші ойыншының карталары.

Шығару

Әр тест үшін жеке жолда бес түрлі стандартты колоданың карталарын шығарыңыз. Бұл карталар ойыншылардың карталарымен сәйкес келмеуі керек. Шығарылған бес карта бірінші ойыншының ең жақсы қолы екінші ойыншының ең жақсы қолынан нақты жеңетінін қамтамасыз етуі керек.

Мысалдар

Енгізу 1
3
7S 7H 2S 2H
4C 3D AS AC
AS KS 2S 3S
Жауап 1
AS AC AH 3S 3D
KD KC 4S 4H 3C
QS JS TS 9S 8S