Prihlásenie Registrácia  

H - Juch

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3.4, Python 3.11

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Juch sa hrá so „sedmovými“ kartami, teda so sadou 32 kariet štyroch farieb – srdcia (hearts), gule (bells), listy (leaves) a žalude (acorns) – po osem hodnôt – v poradí od najhodnotnejšej po najmenej hodnotnú A (eso), K (kráľ), Q (horník), J (dolník), T (10), 9, 8, 7.

Pravidlá hry Juch sú nasledujúce:

  1. Hrajú štyria hráči, ktorým sa rozdajú všetky karty, teda každý dostane 8 kariet.
  2. Hra má osem kôl, v každom kole všetci hráči (postupne v zápornom smere (v smere hodinových ručičiek) od začínajúceho) vyložia jednu kartu.
  3. Hráč, ktorý má aspoň jednu kartu rovnakej farby ako je karta, ktorú vyložil začínajúci hráč, môže vyložiť ľubovoľnú kartu tejto farby. Hráč, ktorý nemá žiadnu kartu tejto farby, môže vyložiť ľubovoľnú kartu.
  4. Po každom kole si všetky štyri karty vezme ten hráč, ktorý vyložil najhodnotnejšiu kartu rovnakej farby ako hráč, ktorý začínal kolo.
  5. Každé kolo začína hráč, ktorý zobral karty z predošlého kola. Začínajúci hráč môže vyložiť ľubovoľnú kartu.
  6. Výnimkou je prvé kolo, ktoré začína hráč, ktorý má „guľovú sedmu“ (7B), a musí vyložiť túto kartu.

(Pravidlá nesúvisiace s úlohou, napríklad cieľ hry a bodovanie, boli vynechané.)

Ako vidíte, táto hra má jeden problém: Hráč, ktorého protihráči nemajú dobrú pamäť, môže ľahko podvádzať – jednoducho vyloží kartu inej farby ako začínajúci hráč, napriek tomu, že kartu takejto farby ešte má. Ostatní hráči v tejto chvíli nemajú šancu odhaliť takýto podvod, môžu na to prísť až neskôr, keď podvádzajúcemu hráčovi ostane na vyloženie už len karta farby, ktorú predtým „nepriznal“ – to už si však nemusia pamätať. Vašou úlohou teda bude napísať program, ktorý pomôže aj hráčom s horšou pamäťou odhaliť podvodníkov.

Úloha

Daný je priebeh jednej hry Ch., teda postupnosť 32 vyložených kariet. Vašou úlohou je zistiť, či niektorý hráč podvádzal.

Vstup

Prvý riadok vstupu obsahuje kladné celé číslo T ≤ 1000 určujúce počet vstupných sád. Nasledujúcich T riadkov obsahuje označenia 32 kariet oddelené medzerami, teda zoznam kariet v poradí, ako boli vyložené. Označenie karty je tvorené dvoma znakmi, prvý reprezentuje jej hodnotu (A, K, Q, J, T, 9, 8, 7) a druhý reprezentuje jej farbu (H, B, L, A). Môžete predpokladať, že na vstupe je priebeh hry, ktorá sa mohla uskutočniť, teda že sa tam každá karta nachádza práve raz a že prvá karta je vždy 7B.

Výstup

Pre každú sadu zo vstupu vypíšte jeden riadok obsahujúci buď reťazec „OK“, ak žiaden hráč nepodvádzal, alebo reťazec „Hrac X podvadzal v Y. kole”, kde X je číslo 1, 2, 3 alebo 4 podľa poradia, v ktorom hráč vyhadzoval kartu v prvom kole a Y je poradie kola, v ktorom hráč podvádzal. Ak sa v hre vyskytlo viacero podvodov, vypíšte informácie o prvom z nich.

Príklad

Vstup:

2
7B AB AH QA TL 8L 9L 7L TB KH JB KB 9H 8H 7H JL JA 9A TA KL TH AA QH QL 7A 9B KA 8A AL QB JH 8B
7B 9B QB AB JB TB 8B KB 7A 9A JA TA 8H 7H AH QH TH 9H QA JH 8L KL JL TL AA KA 8A QL KH 7L 9L AL

Výstup:

Hrac 4 podvadzal v 1. kole
OK

Vysvetlenie prvej hry:

V prvom kole hráč 4 vyloží žaluďového horníka, napriek tomu, že má guľovú kartu (to ale ešte nevieme). Prvé kolo vezme hráč 2, ktorý vyložil guľové eso, a teda tento začne druhé kolo. Toto prebehne v poriadku, vezme ho znovu hráč 2. Tretie kolo začne hráč 2 opäť guľou. Hráč 4 (tretí v poradí v tomto kole) však tentoraz vyloží guľovú kartu (JB), a teda jeho podvod z prvého kola vyjde najavo. Zvyšné kolá sú v poriadku.