Programozó versenyek

Magas szintű programozási nyelvek 2, 2018. október 18., Cs12 ZH

2018. október 18. 12:05 – 2018. október 18. 13:50

Lego készletek

Egy játékbolt polcain több különböző témájú és méretű Lego készlet közül válogathatunk. Ezek lehetnek kicsi zacskósak, de akár hatalmas dobozosok is. A megvásárolandó készlet kiválasztása éppen ezért sokszor hatalmas fejtörést okoz.

Írjon programot, amely a standard bemenet első sorából beolvas egy egész számot (N-et), amely a további feldolgozandó sorok (és szettek) darabszámát adja meg! A következő N sor mindegyikének a felépítése a következő:

termékkód;szett_neve;téma_neve;elemek_száma

A termékkód a készlet egyedi azonosítója (egész), a szett_neve és a téma_neve a készlet, valamint a téma nevét tartalmazó sztringek, az elemek_száma pedig a készletben található Lego építőelemek pontos darabszáma (egész).

A programnak kétféle sorrendet kell felállítani a beolvasott készletek között:

  1. Rendezze a beolvasott készletek adatait a bennük található elemek száma szerint csökkenő sorrendbe! Ha több azonos darabszámú elemet tartalmazó készlet lenne a listában, akkor őket a téma neve szerint rendezze lexikografikus sorrendbe! Ha ezek alapján sem tudna különbséget tenni két készlet között, akkor őket a nevük szerint lexikografikus, végül pedig a termékkód szerint növekvő sorrendbe rendezze!
  2. Rendezze a beolvasott készletek adatait a téma neve szerint lexikografikus sorrendbe! Ha több azonos témakörbe tartozó készlet is lenne a listában, akkor őket a készlet neve szerint rendezze lexikografikus sorrendbe! Ha ezek alapján sem tudna különbséget tenni két készlet között, akkor őket a termékkódjuk szerint rendezze növekvő sorrendbe!

Feltételezheti, hogy nincs két egyforma termékkóddal ellátott készlet.

A készletek adatait (termékkód, készlet neve, téma neve, elemek száma) a példa kimenetben látható formában írja a standard kimenetre! A két rendezési szempont alapján előállított sorokat egy darab üres sor válassza el egymástól!

Példa bemenet

  1. 5
  2. 30356;Hot dog arus;Lego City;43
  3. 30360;Sarkvideki jegfuresz;Lego City;43
  4. 30381;Birodalmi TIE Fighter;Lego Star Wars;42
  5. 10258;London Bus;Lego Creator Expert;1686
  6. 10253;Big Ben;Lego Creator Expert;4163
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Big Ben (10253): 4163 - Lego Creator Expert
  2. London Bus (10258): 1686 - Lego Creator Expert
  3. Hot dog arus (30356): 43 - Lego City
  4. Sarkvideki jegfuresz (30360): 43 - Lego City
  5. Birodalmi TIE Fighter (30381): 42 - Lego Star Wars
  6. Hot dog arus (30356): 43 - Lego City
  7. Sarkvideki jegfuresz (30360): 43 - Lego City
  8. Big Ben (10253): 4163 - Lego Creator Expert
  9. London Bus (10258): 1686 - Lego Creator Expert
  10. Birodalmi TIE Fighter (30381): 42 - Lego Star Wars
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.