Programozó versenyek

Programozási nyelvek 2, gyakorló feladatsor, 2020. október 15.

2020. október 15. 0:00 – 2020. december 1. 12:00

Kuponok

A kuponos akciók hatalmas tömegeket vonzanak a plázák üzleteibe, így történt ez a hétvégén is. Egy barátunk szeretne minél gyorsabban, minél nagyobb kedvezménnyel hozzájutni a szorgalmi időszak túléléséhez szükséges termékekhez. Sajnos azonban zárthelyi dolgozatra kell készülnie, így kevés időt tud a kuponok válogatására és beváltására fordítani. Egy olyan programra lenne szüksége, amely segít neki különböző szempontok szerint rendezni a magazinban található kuponokat.

Í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 kuponok) darabszámát adja meg! A következő N sor mindegyikének a felépítése a következő:

üzlet_neve;termék_neve;kedvezmény_mértéke

Az üzlet_neve és a termék_neve az üzlet, valamint a kedvezményes termék nevét tartalmazó sztringek, a kedvezmény_mértéke pedig a vásárlás végösszegéből biztosított kedvezmény százalékos mértéke (egész szám).

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

  1. Rendezze a beolvasott kuponok adatait a kedvezmény mértéke szerint csökkenő sorrendbe! Ha több azonos kedvezményt biztosító kupon lenne a listában, akkor őket az üzlet neve szerint rendezze lexikografikus sorrendbe! Ha ezek alapján sem tudna különbséget tenni két kupon között, akkor őket a termék neve szerint rendezze lexikografikus sorrendbe!
  2. Rendezze a beolvasott kuponok adatait az üzlet neve szerint lexikografikus sorrendbe! Ha egy üzletben több kupon is érvényes, akkor őket a kedvezmény mértéke szerint rendezze csökkenő sorrendbe! Ha ezek alapján sem tudna különbséget tenni két kupon között, akkor őket a termék neve szerint rendezze lexikografikus sorrendbe!

Feltételezheti, hogy azonos üzlet esetén nincs két egyforma nevű termékre jogosító kupon. A termék neve lehet egy konkrét árucikk, egy termékcsalád vagy egy márka is. A megoldás szempontjából lényegtelen, hogy éppen melyik szerepel a kuponon.

A kuponok adatait (üzlet neve, termék neve, kedvezmény mértéke) a példa kimenetben látható formában írja a standard kimenetre! A két rendezési szempont alapján előállított sorokat egyetlen üres sor válassza el egymástól!

Példa bemenet

  1. 5
  2. Samsung Experience Store;kiegeszitok;20
  3. BiotechUSA;minden termek;20
  4. J.Press;teljes aru termekek;20
  5. Media Markt;kavefozok;20
  6. Rossmann;dekorkozmetikai termekek;30
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. dekorkozmetikai termekek (Rossmann): 30%
  2. minden termek (BiotechUSA): 20%
  3. teljes aru termekek (J.Press): 20%
  4. kavefozok (Media Markt): 20%
  5. kiegeszitok (Samsung Experience Store): 20%
  6. minden termek (BiotechUSA): 20%
  7. teljes aru termekek (J.Press): 20%
  8. kavefozok (Media Markt): 20%
  9. dekorkozmetikai termekek (Rossmann): 30%
  10. kiegeszitok (Samsung Experience Store): 20%
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.