En un combat Pokémon, el camp de batalla es representa com una matriu de files i 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 , 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
els punts de vida de tots els Pokémon de la fila
.
COL c d: redueix en
els punts de vida de tots els Pokémon de la columna
.
Els punts de vida mai poden ser negatius: si després d’un atac el valor queda per sota de , es considera 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
amb un número, retorna l’enter corresponent a aquest número.
La primera línia conté dos enters i .
A continuació venen línies, cadascuna amb 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 , el nombre d’operacions.
A continuació venen línies, cadascuna amb una operació en un dels formats següents:
ROW r d
COL c d
Les files es numeren de a i les columnes de a .
Després de cada operació ROW o COL, escriu
una línia amb:
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.
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