Programozó versenyek

DEIK Regionális Programozó Csapatverseny, gyakorló feladatsor

2012. október 26. 20:00 – 2012. november 23. 0:00

Bridzs

Sok kártyajátékban, mint például a bridzsben, egy hagyományos 52 lapos kártyacsomagot kell kiosztani négy játékosnak, így mindenki kap 13 lapot. Az ügyes játékosok ezután úgy is tudnak játszani a lapjaikkal, ahogyan megkapták őket, a legtöbb játékosnak azonban először rendezni kell a lapjait színek, azon belül pedig figurák szerint.

Erre a célra nincs fix sorrendje a színeknek, de hasznos váltogatni a fekete és a piros színeket, így most a következő rendezettséget vesszük alapul: treff (clubs) < káró (diamonds) < pikk (spades) < kőr (hearts). (A színekre a továbbiakban a C, D, S, H rövidítésekkel fogunk hivatkozni.) Azonos színen belül az ász a legértékesebb lap, a sorrend tehát 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q < K < A. (T-vel a 10-est jelöljük.)

A játékosok jelölése általában az Észak (North), Dél (South), Kelet (East) és Nyugat (West) égtájakkal történik, az ülésrendjüknek megfelelően. Az egyik játékos lesz az osztó, aki kioszt egy lapot minden játékosnak a tőle balra ülővel kezdve, majd az óramutató járásával megegyező irányban haladva, míg végül az utolsó lapot magának osztja:

Írj programot, amely beolvas egy pakli kártyát, kiosztja a lapokat, rendezi őket, végül kiírja a négy játékos rendezett lapjait az alább ismertetett formátumban!

A bemenet specifikációja

A bemenet leosztások sorozatát tartalmazza. Mindegyik leosztás az osztót reprezentáló betűvel (N, E, S vagy W) kezdődik, majd a paklit leíró két sorral folyatódik (lásd a példa inputot). A bemenetet egy olyan sor zárja, amely egyetlen „#” karakterből áll.

A kimenet specifikációja

A kimenetnek az egyes leosztásokhoz tartozó négysoros blokkok sorozatából kell állnia. Minden blokkot négy sor alkot, amelyek az egyes játékosok rendezett lapjait írják le a példa outputban látható sorrendben és formátumban. A blokkoknak közvetlenül kell követniük egymást, üres sorok nélkül.

Példa bemenet

  1. N
  2. CQDTC4D8S7HTDAH7D2S3D6C6S6D9S4SAD7H2CKH5D3CTS8C9H3C3
  3. DQS9SQDJH8HAS2SKD4H4S5C7SJC8DKC5C2CAHQCJSTH6HKH9D5HJ
  4. #
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. S: C3 C5 C7 CT CJ D9 DT DJ S3 SK H2 H9 HT
  2. W: C2 C4 CK D4 D5 D6 DQ DA S4 S8 ST SJ H8
  3. N: C6 C8 C9 CA D8 S9 SA H4 H5 H6 H7 HJ HA
  4. E: CQ D2 D3 D7 DK S2 S5 S6 S7 SQ H3 HQ HK
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.