Programozó versenyek

Informatikai versenyfeladatok, gyakorló feladatsor, 2012. április 23.

2012. április 23. 0:00 – 2012. május 21. 0:50

A leghosszabb pihenő

Mint azt már bizonyára tudod, vannak olyan tanárok, akik nagyon elfoglaltak, telített a munkarendjük az egyes napokon. A te tanárod (nevezzük P. professzornak) egy kicsit lusta, ezért szeretne szundítani egyet a nap folyamán, de mivel nagyon zsúfolt a munkarendje, nincs túl sok lehetősége erre. Azonban MINDENKÉPPEN szeretne pihenni egyet mindennap. Mivel csak egyszer fog szunyókálni, a lehető leghosszabb pihenőidőt akarja felhasználni, figyelembe véve a munkarendjét. Elhatározta, hogy ír egy programot, amely segíti őt ebben a feladatban, de — ahogy azt említettük — P. professzor nagyon lusta. Ezért aztán végül úgy döntött, hogy NEKED kell megírni a programot!

A bemenet specifikációja

A bemenet tetszőleges számú tesztesetet tartalmaz. Minden teszteset egy napot ír le. A tesztesetek első sora egy (100-nál nem nagyobb) pozitív egész s számból áll, amely az adott napon esedékes események számát adja meg. A következő s sor tartalmazza az eseményeket az alábbi formában:

idő1 idő2 esemény

Itt idő1 jelöli azt az időpontot, amikor az esemény kezdődik, idő2 pedig azt az időpontot, amikor véget ér. Minden időpont hh:mm formátumú lesz, idő1 szigorúan kisebb lesz, mint idő2, egyetlen szóközzel lesznek elválasztva, és minden időpont nagyobb vagy egyenlő lesz 10:00-nál és kisebb vagy egyenlő 18:00-nál. Így a válaszodnak is ebbe az intervallumba kell esnie (azaz egyik pihenőidő sem kezdődhet 10:00 előtt, és tarthat 18:00-nál tovább). Az esemény bármilyen karaktersorozat lehet, de mindig egy sorban lesz megadva. Feltételezheted, hogy egyetlen sor sem lesz hosszabb 255 karakternél, hogy 10 ≤ hh ≤ 18 és hogy 0 ≤ mm < 60. NEM feltételezheted azonban, hogy a bemenet bármilyen konkrét sorrendben lesz megadva. A bemenetet addig kell olvasni, amíg el nem éred az állomány végét.

A kimenet specifikációja

Minden tesztesetre az alábbi sort kell a kimenetre írnod:

Day #d: the longest nap starts at hh:mm and will last for [H hours and] M minutes.

Itt d a teszteset számát jelenti (1-ről indulva), hh:mm pedig az az időpont, amikor a pihenőidő kezdődik. A pihenő időtartamának megjelenítéséhez kövesd az alábbi egyszerű szabályokat:

  1. Ha a teljes X időtartam percben mérve kisebb, mint 60, akkor csak az „M minutes” szöveget kell kiírni, ahol M = X.
  2. Ha a teljes X időtartam percben mérve nagyobb vagy egyenlő, mint 60, akkor a „H hours and M minutes” szöveget kell kiírni, ahol H = X div 60 (természetesen egész osztással) és M = X mod 60.

Figyeld meg, hogy nem kell foglalkoznod az egyes szám/többes szám használatával (azaz „1 minutes” vagy „1 hours” a kiírandó szöveg, ha ez a helyzet). A pihenőidő hosszát a szabadidő végének és elejének a különbségeként kell kiszámítani. Ha például egy esemény 14:00-kor kezdődik, a következő pedig 14:47-kor, akkor (14:47) − (14:00) = 47 perc a lehetséges pihenőidő.

Ha egynél több azonos időtartamú leghosszabb pihenőidő létezik, akkor a legkorábbit kell kiírni. Feltételezheted, hogy egyik nap sem lesz teljesen foglalt (azaz lesz legalább egy lehetséges pihenőidő).

Példa bemenet

  1. 4
  2. 10:00 12:00 Lectures
  3. 12:00 13:00 Lunch, like always.
  4. 13:00 15:00 Boring lectures...
  5. 15:30 17:45 Reading
  6. 4
  7. 10:00 12:00 Lectures
  8. 12:00 13:00 Lunch, just lunch.
  9. 13:00 15:00 Lectures, lectures... oh, no!
  10. 16:45 17:45 Reading (to be or not to be?)
  11. 4
  12. 10:00 12:00 Lectures, as everyday.
  13. 12:00 13:00 Lunch, again!!!
  14. 13:00 15:00 Lectures, more lectures!
  15. 15:30 17:15 Reading (I love reading, but should I schedule it?)
  16. 1
  17. 12:00 13:00 I love lunch! Have you ever noticed it? :)
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Day #1: the longest nap starts at 15:00 and will last for 30 minutes.
  2. Day #2: the longest nap starts at 15:00 and will last for 1 hours and 45 minutes.
  3. Day #3: the longest nap starts at 17:15 and will last for 45 minutes.
  4. Day #4: the longest nap starts at 13:00 and will last for 5 hours and 0 minutes.
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.