Programozó versenyek

Magas szintű programozási nyelvek 2, 2018. január 2., K15 ZH

2018. január 2. 15:00 – 2018. január 2. 16:50

Kirakós kártyajáték (C#)

Írjon programot, amely a standard bemenet soraiból egy magyarkártya-pakli lapjait olvassa be, soronként egyet-egyet! A kártyalapok színeit a P (piros), T (tök), M (makk), Z (zöld) betűkkel, értékeit a 7 (hetes), 8 (nyolcas), 9 (kilences), 10 (tízes), U (alsó), O (felső, nagy O betű), K (király) és A (ász) számokkal és betűkkel jelöljük.

A bemenet első sorából olvasott kártyalap lesz a kezdő lap, ezt a lapot helyezzük az asztalra, és minden ezután lerakott lapot erre a lapra teszünk rá, egy halmot építve így. A további kártyákat a beolvasás sorrendjében próbáljuk meg a halom legfelső lapjához illeszteni. Egy lap akkor illeszthető a halom tetején lévőhöz, ha vagy a színe, vagy az értéke megegyezik azéval (de mindkettő egyszerre nem egyezhet meg vele). Amennyiben az illesztés sikeres, a vizsgált lapot lerakjuk a halom tetejére, innentől kezdve ő lesz a halom legfelső lapja. Ha nem lehet a soron következő lapot a halom tetején lévőhöz illeszteni, akkor ez a lap a nyakunkon marad, ezzel a későbbiekben már nem tudunk mit kezdeni. Tevékenységünket mindaddig folytatjuk, míg az összes beolvasott kártyalapot végig nem néztük.

A programja írja a standard kimenetre a nyakunkon maradt kártyalapokat növekvő sorba rendezve, soronként egyet-egyet! A lapok sorba rendezésekor mindenekelőtt a lapok színét vegye figyelembe:

P < T < M < Z

Azonos színű lapok esetén a lapok értéke alapján alakítsa a sorrendet:

7 < 8 < 9 < 10 < U < O < K < A

Példa bemenet

  1. P 8
  2. T 10
  3. Z A
  4. Z 8
  5. Z 9
  6. M K
  7. M 9
  8. T O
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. T 10
  2. T O
  3. M K
  4. Z A
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.