Rol classificatori P60296


Statement
 

pdf   zip

thehtml

Simuleu un servidor de partides d’un joc de rol per a dos jugadors. Cada jugador té un ‍“elo”, que és un valor més gran com més bo és. Tothom comença amb 1200 punts, i per molt que es perdin partides no es baixa mai d’aquesta quantitat. Cada vegada que es fa una partida, el guanyador obté 10 punts d’elo, i el perdedor en perd 10 (amb la limitació anterior). L’elo d’un jugador es manté quan es desconnecta del servidor.

Hi ha aquestes instruccions:

  • LOGINj : El jugador j inicia una sessió. Si ja està connectat, cal ignorar la instrucció.
  • LOGOUTj : El jugador j tanca la sessió. Si no està connectat, cal ignorar la instrucció.
  • PLAYj1 ⁠ ⁠ j2 : Indica que j1 ha guanyat a j2, amb j1j2. Si algun dels dos jugadors no està connectat, cal ignorar la instrucció i escriure un missatge d’error.
  • GET_ELOj : Cal escriure el jugador j (el qual és segur que s’ha connectat prèviament, encara que ara pot estar desconnectat) amb el seu elo actual.

Entrada

L’entrada consisteix en diverses instruccions sobre com a molt 105 jugadors. Cada jugador té un nom diferent format amb lletres minúscules.

Sortida

Per a cada instrucció “GET_ELO” (i potser “PLAY”) cal escriure la sortida adequada. Al final, cal escriure una línia buida, la paraula “RANKING”, i un rànking ordenat decreixentment per elo (en cas d’empat, primer el nom més petit en ordre alfabètic) amb tots els jugadors que s’han connectat alguna vegada.

Public test cases
  • Input

    LOGIN destello
    LOGIN fxtr
    PLAY destello fxtr
    PLAY destello fxtr
    LOGIN carokhan
    GET_ELO destello
    GET_ELO fxtr
    LOGOUT destello
    PLAY carokhan fxtr
    LOGOUT fxtr
    LOGIN cerebrus
    LOGOUT cerebrus
    LOGIN grassman
    PLAY destello grassman
    PLAY grassman destello
    LOGIN cusell
    

    Output

    destello 1220
    fxtr 1200
    jugador(s) no connectat(s)
    jugador(s) no connectat(s)
    
    RANKING
    destello 1220
    carokhan 1210
    cerebrus 1200
    cusell 1200
    fxtr 1200
    grassman 1200
    
  • Input

    PLAY omer petit
    LOGIN omer
    PLAY omer petit
    LOGIN omer
    LOGOUT omer
    GET_ELO omer
    

    Output

    jugador(s) no connectat(s)
    jugador(s) no connectat(s)
    omer 1200
    
    RANKING
    omer 1200
    
  • Information
    Author
    Enric Cusell
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++ Python
    User solutions
    C++ Python