Combat Pokémon (I) X67066


Statement
 

pdf   zip

En un combat Pokémon, el camp de batalla es representa com una matriu de NN files i MM columnes. Cada cel·la del camp pot estar:

  • buida, o bé

  • ocupada per com a màxim un Pokémon, descrit pel seu nom i els seus punts de vida.

Si una cel·la té punts de vida 00, es considera que el Pokémon d’aquella posició està derrotat i la cel·la passa a ser buida.

Durant el combat es produeixen atacs que afecten files o columnes senceres del camp de batalla:

  • ROW r d: redueix en dd els punts de vida de tots els Pokémon de la fila rr.

  • COL c d: redueix en dd els punts de vida de tots els Pokémon de la columna cc.

Els punts de vida mai poden ser negatius: si després d’un atac el valor queda per sota de 00, es considera 00 i el Pokémon queda derrotat.

Després de cada operació ROW o COL, cal escriure:

  • el nombre total de Pokémon vius al camp de batalla,

  • el nom del Pokémon viu amb més punts de vida i els seus punts de vida.

Si no queda cap Pokémon viu, cal escriure 0 NONE.

En cas d’empat (diversos Pokémon vius amb la mateixa vida màxima), s’ha d’escriure el nom lexicogràficament més petit.

IMPORTANT: Has d’implementar una acció que, donat un string que conté el nom i la vida d’un Pokémon en el format nom:vida, torni:

  • un string amb el nom del Pokémon,

  • un int amb els seus punts de vida.

Per resoldre aquest problema pots usar la funció stoi(s), que donat un string ss amb un número, retorna l’enter corresponent a aquest número.

Entrada

La primera línia conté dos enters NN i MM.

A continuació venen NN línies, cadascuna amb MM elements separats per espais. Cada element és:

  • el símbol -, que indica una cel·la buida, o bé

  • una parella nom:vida, on nom és una paraula sense espais i vida és un natural.

La següent línia conté un enter QQ, el nombre d’operacions.

A continuació venen QQ línies, cadascuna amb una operació en un dels formats següents:

  • ROW r d

  • COL c d

Les files es numeren de 11 a NN i les columnes de 11 a MM.

Sortida

Després de cada operació ROW o COL, escriu una línia amb: 𝚅 𝙽𝙾𝙼:𝙿𝚄𝙽𝚃𝚂\texttt{V NOM:PUNTS} on V és el nombre total de Pokémon vius, NOM és el nom del Pokémon viu amb més punts de vida i PUNTS els punts de vida d’aquest Pokémon. Si no queda cap Pokémon viu, escriu 0 NONE.

Per obtenir més detalls sobre la sortida consulta els jocs de proves públics.

Public test cases
  • Input

    3 4
    Pikachu:30 - Charmander:25 Squirtle:35
    Eevee:20 Snorlax:100 Mew:50 -
    - Gengar:45 Jigglypuff:15 Psyduck:25
    5
    ROW 1 10
    COL 2 20
    ROW 2 30
    COL 4 15
    ROW 3 10
    

    Output

    9 Snorlax:100
    9 Snorlax:80
    8 Snorlax:50
    8 Snorlax:50
    7 Snorlax:50
    
  • Input

    4 4
    Mew:100 - - -
    - - - -
    - - - -
    - - - Mewtwo:100
    14
    ROW 1 10
    COL 4 10
    ROW 1 10
    COL 4 10
    ROW 1 10
    COL 4 10
    ROW 1 10
    COL 4 10
    ROW 1 10
    COL 4 10
    ROW 1 10
    COL 4 10
    ROW 1 10
    COL 4 10
    
    

    Output

    2 Mewtwo:100
    2 Mew:90
    2 Mewtwo:90
    2 Mew:80
    2 Mewtwo:80
    2 Mew:70
    2 Mewtwo:70
    2 Mew:60
    2 Mewtwo:60
    2 Mew:50
    2 Mewtwo:50
    2 Mew:40
    2 Mewtwo:40
    2 Mew:30
    
  • Input

    3 3
    Abra:20 Bulbasaur:35 Charmander:35
    Diglett:10 Eevee:25 Froakie:30
    Gastly:15 Hoopa:40 Ivysaur:28
    30
    ROW 1 5
    COL 2 10
    ROW 2 8
    COL 1 10
    ROW 3 12
    COL 3 15
    ROW 1 6
    COL 2 5
    ROW 2 3
    COL 1 4
    ROW 3 5
    COL 3 4
    ROW 1 3
    COL 2 10
    ROW 1 1
    COL 3 1
    ROW 2 5
    COL 1 7
    ROW 3 2
    COL 2 1
    ROW 1 4
    COL 3 3
    ROW 2 8
    COL 2 6
    ROW 3 9
    COL 1 2
    ROW 1 1
    COL 3 10
    ROW 2 1
    COL 2 2
    

    Output

    9 Hoopa:40
    9 Charmander:30
    9 Charmander:30
    8 Charmander:30
    7 Charmander:30
    7 Bulbasaur:20
    6 Hoopa:18
    6 Hoopa:13
    5 Hoopa:13
    5 Hoopa:13
    4 Bulbasaur:9
    3 Bulbasaur:9
    3 Hoopa:8
    1 Charmander:2
    1 Charmander:1
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    0 NONE
    
  • Information
    Author
    Bernardino Casas
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++