SCOREBOARD | 프로그래밍의 벗 PivotOJ
PivotOJ

SCOREBOARD

시간 제한: 1000ms메모리 제한: 2048MB출처: CHC 2025 Junior Croatian Olympiad in InformaticsBOJ 34575

문제

Za nešto manje od četiri sata završit će stresna Juniorska hrvatska informatička olimpijada ili popularni JHIO.

Svi natjecatelji će užurbano “refreshati” svoje ekrane čekajući scoreboard, no on se nažalost neće pojaviti. Osoba koja je zadužena za siguran i točan rad Evaluatora uživa u Las Vegasu ostavivši nam poruku:

"Što će im scoreboard kada ga mogu sami implementirati, neka im to bude jedan od zadataka."

Tvoj zadatak je napraviti program koji će, na temelju unesenih podataka o natjecateljima, ispisati ranglistu s jasno definiranim formatom.

Znamo broj natjecatelja na natjecanju označen brojem NN, njihova imena, prezimena i broj bodova koje su osvojili. Program treba ispisati konačne rezultate u obliku tablice, gdje su natjecatelji poredani na poseban način. Prvo se sortiraju po broju osvojenih bodova od najvećeg prema najmanjem, pa po imenu, a zatim po prezimenu. Tablica sadrži tri glavna stupca:

  1. Ostvareno mjesto - redni broj mjesta koje je natjecatelj ostvario računa se kao broj natjecatelja sa strogo većim osvojenim brojem bodova + 1
  2. Ime i prezime
  3. Broj osvojenih bodova od ukupnih 400400.

Svaki redak tablice započinje uspravnom crtom tj. znakom ‘|(ASCII vrijednost 124) i razmakom iza, a završava znakom ‘| i razmakom prije. Glavni stupci su između sebe odvojeni uspravnom crtom i po jednim razmakom lijevo i desno. Uspravne crte koje odvajaju stupce moraju biti poravnate s ostalima, tj. ovise o duljini imena i prezimena natjecatelja, njihovim ostvarenim mjestima i brojevima bodova. Također, brojevi u svim glavnim stupcima moraju biti poravnati tako da se znamenke jedinica, desetica i stotica nalaze u istim stupcima. Početni i završni redci tablice sastoji se samo od znakova minus ‘- te su jednake duljine kao i ostali. U treći glavni stupac ispisujemo broj osvojenih bodova, znak ‘/ (ASCII vrijednost 47) s po jednim razmakom prije i poslije te ukupan broj mogućih bodova tj. 400400. Vidi probne primjere.

입력

U prvom je retku prirodan broj NN (1 ≤ N ≤ 100), broj iz teksta zadatka. U sljedećih NN redaka nalaze se dvije riječi, ime i prezime natjecatelja te cijeli broj XX (0 ≤ X ≤ 400), broj osvojenih bodova zadanog natjecatelja na natjecanju. Riječi sadrže do 2020 velikih slova engleske abecede.

출력

Ispiši kako scoreboard izgleda nakon što je natjecanje završilo.

힌트

Opis trećeg probnog primjera: Natjecatelji su sortirani po broju bodova. Nalijevo od njihovih imena piše njihovo ostvareno mjesto na natjecanju, a nadesno osvojen broj bodova. Tablica je ispisana sukladno s pravilima o razmacima iz teksta zadatka. Natjecatelji LEONARDO STARESINCIC i LUKAS DUKCIC imaju jednak broj bodova pa dijele 88. mjesto. Ime LEONARDO je abecednim redom prije imena LUKAS pa je LEONARDO STARESINCIC prije ispisan na scoreboardu.

예제

예제 1

입력
1
FRAN BABIC 347
출력
------------------------------
| 1 | FRAN BABIC | 347 / 400 |
------------------------------

예제 2

입력
2
PETAR SRUK 350
BARTOL MARKOVINOVIC 8
출력
---------------------------------------
| 1 | PETAR SRUK          | 350 / 400 |
| 2 | BARTOL MARKOVINOVIC |   8 / 400 |
---------------------------------------

예제 3

입력
10
LUKAS DUKCIC 246
MARIO MIHALJEVIC 234
LUKA RANCIC 400
GABRIEL KOS 269
NIKOLA VLASIC 309
IVO PAVICIC 341
GITA RADIKOVIC 278
LAV MLINAR 258
BORNA GUDAC 332
LEONARDO STARESINCIC 246
출력
-----------------------------------------
|  1 | LUKA RANCIC          | 400 / 400 |
|  2 | IVO PAVICIC          | 341 / 400 |
|  3 | BORNA GUDAC          | 332 / 400 |
|  4 | NIKOLA VLASIC        | 309 / 400 |
|  5 | GITA RADIKOVIC       | 278 / 400 |
|  6 | GABRIEL KOS          | 269 / 400 |
|  7 | LAV MLINAR           | 258 / 400 |
|  8 | LEONARDO STARESINCIC | 246 / 400 |
|  8 | LUKAS DUKCIC         | 246 / 400 |
| 10 | MARIO MIHALJEVIC     | 234 / 400 |
-----------------------------------------
코드를 제출하려면 로그인하세요.