Programozó versenyek

Magas szintű programozási nyelvek 2, 2016. november 8., K16 ZH

2016. november 8. 16:15 – 2016. november 8. 17:55

Másfél millió lépés (Java)

Írjon programot, amely a standard bemenet első sorából beolvas egy n pozitív egész számot, amely a további sorok számát adja meg! A következő n sorban turisták vándorlásainak leírásai szerepelnek a következő formában:

turista_neve;útvonalleíró_sztring

A fenti sorban pontosvessző karakter választja el egymástól a turista nevét az általa megtett útvonalat leíró sztringtől. Az útvonalleíró sztringben K, P, S és Z karakterek jelzik azokat a szakaszokat, amelyeket a turista az országos kék, illetve a helyi jelentőségű piros, sárga és zöld jelzéseken tett meg. A pont karakterek (.) ebben a sztringben a turistajelzés nélküli útszakaszokat jelölik.

Minden turista esetén számítsa ki, hogy hány szakaszt tett meg a turista az országos kék jelzésen, és hányat tett meg a helyi jelentőségű piros, sárga és zöld jelzéseken összesen! Rendezze a turisták adatait csökkenő sorrendbe aszerint, hogy melyikük tette meg a legtöbb szakaszt az országos kék jelzésen! Ha ez az érték több turista esetén is megegyezne, akkor őket a helyi jelentőségű egyéb színű jelzéseken megtett szakaszok száma szerint állítsa csökkenő sorba! Ha e szerint az érték szerint sem tudna dönteni két turista sorrendjéről, akkor őket állítsa nevük alapján lexikografikusan növekvő sorrendbe! A program írja az ily módon sorba rendezett turisták nevét a standard kimenetre, soronként egyet-egyet!

Példa bemenet

  1. 4
  2. Teszt Elek;K.K.K.
  3. Gipsz Jakab;.Z.PK..S.SKZ...P.Z..P.K.S
  4. Vizi Palma;KSKPKZK
  5. Bodon Odon;...K....K...K...
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Vizi Palma
  2. Gipsz Jakab
  3. Bodon Odon
  4. Teszt Elek
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.