Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
FR_06_10 - Czas brutto, czas netto |
Czas brutto, czas netto
Podczas imprez biegowych ranking generowany jest na podstawie czasu brutto, czyli czasu, jaki upłynął od wystrzału z pistoletu startowego do osiągnięcia mety przez zawodnika. Tak być musi w zawodach rangi mistrzowskiej, inaczej niejednokrotnie zwycięzcą biegu nie byłby ten, który linię mety minął jako pierwszy. Ale czy musi być tak na biegach amatorskich? Zawodnik, który stoi daleko od linii startu, musi przebiec dłuższy dystans oraz pierwsze (kilo)metry rywalizować w sporym ścisku. System, w którym ten, który ma lepszy czas rzeczywisty (netto - mierzony od chwili przekroczenia linii startu) często jest sklasyfikowany niżej niż ten, kto przed biegiem ustawił się bliżej startu, nie jest do końca sprawiedliwy. Dlatego czasami w biegach ulicznych, ranking generowany jest na podstawie czasów netto, choć czasami dopiero od pewnego ustalonego miejsca. Twoim zadaniem jest wygenerować klasyfikację z biegu uwzględniając czas netto, mając do dyspozycji ranking brutto oraz informacje o opóźnieniu zawodników w stosunku do przekroczenia linii startu.
Wejście
W pierwszym wierszu wejścia znajduje się liczba całkowita n (2 ≤ n ≤ 105) oznaczająca liczbę uczestników biegu. W kolejnych n wierszach znajdują się rekordy, w których podane są kolejno: nazwisko, imię, czas brutto w formacie GG:MM:SS oraz opóźnienie czasowe w formacie MM:SS. Nazwisko i imię to ciągi małych i dużych liter alfabetu łacińskiego, których sumaryczna długość nie przekracza 30 znaków. Należy założyć, że dane są poprawne, tzn. czas netto będący różnicą czasu brutto i opóźnienia jest zawsze dodatni.
Wyjście
Na wyjściu należy wygenerować dokładnie n rekordów, składających się na klasyfikację biegu według czasów netto. Każdy rekord to kolejno: numer porządkowy uczestnika, nazwisko, imię, czas netto (GG:MM:SS), czas brutto (GG:MM:SS), rozdzielone pojedynczym znakiem spacji. W przypadku, gdy co najmniej dwóch zawodników ma jednakowy czas netto, o ich kolejności w rankingu decyduje porządek leksykograficzny nazwisko - imię.
Przykład
Wejście
10
Bak Adam 00:37:00 00:02
Kakol Piotr 00:40:00 00:01
Kasprowicz Marcin 00:40:01 00:00
Bejnar Mieczyslaw 00:40:02 00:02
Sliwinski Mariusz 00:40:03 00:04
Dlugosz Witold 00:41:11 00:03
Nowaczynski Arkadiusz 00:43:17 00:01
Boniecki Maciej 00:43:18 00:02
Konczak Jaroslaw 00:43:57 00:02
Kraska Bartek 00:43:59 00:04
Wyjście
1 Bak Adam 00:36:58 00:37:00
2 Kakol Piotr 00:39:59 00:40:00
3 Sliwinski Mariusz 00:39:59 00:40:03
4 Bejnar Mieczyslaw 00:40:00 00:40:02
5 Kasprowicz Marcin 00:40:01 00:40:01
6 Dlugosz Witold 00:41:08 00:41:11
7 Boniecki Maciej 00:43:16 00:43:18
8 Nowaczynski Arkadiusz 00:43:16 00:43:17
9 Konczak Jaroslaw 00:43:55 00:43:57
10 Kraska Bartek 00:43:55 00:43:59
Dodane przez: | Mariusz Śliwiński |
Data dodania: | 2016-10-17 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC ASM64 COBOL D-CLANG D-DMD ELIXIR FANTOM GOSU GRV JS-MONKEY NIM OBJC OBJC-CLANG PICO RUST SCM qobi CHICKEN VB.NET |