Programozó versenyek

Magas szintű programozási nyelvek 2, 2014. december 22., H8 ZH

2014. december 22. 8:15 – 2014. december 22. 11:45

Hegyen-völgyön át

A teljesítménytúrák lényege, hogy a túrázónak el kell jutnia A-ból B-be néhány ellenőrzőpont érintésével. Gyakran előfordul, hogy A és B egybeesik, ekkor körtúráról beszélünk. Az ön feladata teljesítménytúrák adatainak a feldolgozása lesz. Írjon programot, amelynek első parancssori argumentuma egy szöveges állomány neve! A szöveges állomány soraiban teljesítménytúrák leírása szerepel a következő formában:

<túraazonosító>;<táv>;<A>[;<E>]…;<B>

ahol a túraazonosító egy sztring, a táv egy valós szám, A, B, valamint a közöttük szereplő összes E pedig újabb sztringek, ahogyan az a példa bemenetben is látható. A sztringek egyike sem tartalmaz pontosvessző karaktert, a pontosvessző karakterek csak a sor egyes elemeinek az elválasztására szolgálnak.

A programja olvassa be a teljesítménytúrák adatait, és a standard kimenetre írjon ki három listát:

  • Az első lista azokat a túrákat tartalmazza az ellenőrzőpontok száma szerint csökkenő sorrendben, amelyek nem körtúrák! Ha több túrának is ugyanannyi ellenőrzőpontja lenne, akkor őket a túraazonosítójuk szerint állítsa ábécérendbe!
  • A második listában az összes túrát sorolja fel, a túratávok növekvő sorrendjében! Ha több azonos távú túra is szerepelne a felsorolásban, akkor őket a túraazonosítójuk szerint állítsa fordított ábécérendbe!
  • A harmadik listában az előző (második) lista utolsó bejegyzésében szereplő túra kiindulópontjának, ellenőrzőpontjainak, valamint célpontjának a nevét sorolja fel, soronként egyet-egyet, a bemenetben megadott sorrendben, de a példa kimenetben látható formában!

Az egyes listákat egy-egy üres sor válassza el egymástól! Ezeket az elválasztó sorokat akkor is ki kell írni, ha a listák bármelyike, amelyeket elválasztanak egymástól, üres!

Példa szöveges állomány

  1. Marciusi Emlektura - Miskolc 24;24.0;Bodnar Gabor Cserkeszpark;Bodnar Gabor Cserkeszpark
  2. Hajdusag 30;32.0;Debrecen-Kondoros, csarda;Lato-hegy, kilato;Bank;Vekeri-to;Mikepercs;Rokas-to;Hajdubagos
  3. Hevízgyork 20;22.0;Hevizgyork, Oregtemplom;Nagy-volgy;Bika-to;Hevizgyork, Altalanos Iskola
  4. Kazinczy 20 Fuzer;19.6;Fuzer;Bodo-ret;Olah-ret;Nagy-Milic;Tolvaj-hegy;Tilalmas;Pusztafalu;Senyanszki-ret;Fuzer
letöltés szöveges állományként

A példa szöveges állományhoz tartozó kimenet

  1. Hajdusag 30;32.0;Debrecen-Kondoros, csarda;Lato-hegy, kilato;Bank;Vekeri-to;Mikepercs;Rokas-to;Hajdubagos
  2. Hevízgyork 20;22.0;Hevizgyork, Oregtemplom;Nagy-volgy;Bika-to;Hevizgyork, Altalanos Iskola
  3. Kazinczy 20 Fuzer;19.6;Fuzer;Bodo-ret;Olah-ret;Nagy-Milic;Tolvaj-hegy;Tilalmas;Pusztafalu;Senyanszki-ret;Fuzer
  4. Hevízgyork 20;22.0;Hevizgyork, Oregtemplom;Nagy-volgy;Bika-to;Hevizgyork, Altalanos Iskola
  5. Marciusi Emlektura - Miskolc 24;24.0;Bodnar Gabor Cserkeszpark;Bodnar Gabor Cserkeszpark
  6. Hajdusag 30;32.0;Debrecen-Kondoros, csarda;Lato-hegy, kilato;Bank;Vekeri-to;Mikepercs;Rokas-to;Hajdubagos
  7. Debrecen-Kondoros, csarda
  8. Lato-hegy, kilato
  9. Bank
  10. Vekeri-to
  11. Mikepercs
  12. Rokas-to
  13. Hajdubagos
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.