Implementa la següent funció:
/** * @brief Esborra parelles d'una llista que tinguin un 0 al camp * `second`, saltant-ne `skip` * * `skip` és el nombre de parelles que, tenint un zero en el camp * `second`, NO s'han d'esborrar de la llista, comptant des del * principi. `skip` pot ser més gran que les parelles que tenen 0 * al camp `second`. * * @param L La llista de parelles * @param skip El nombre de parelles a saltar * * @pre `skip` >= 0 */ void remove_zeros_skipping(list<pair<string, int>>& L, int skip);
Entrada
L’entrada són una sèrie de casos, a on cada cas té dues línies. La primera conté una llista de parelles d’un nom i un enter. La segona té el valor del paràmetre skip
. (La lectura ja la fa el programa principal proporcionat.)
Sortida
La sortida són una sèrie de línies, a on cada línia té la llista de parelles resultant, després de cridar la funció remove_zeros_skipping
. (De la sortida també se n’encarrega el programa principal.)
Observació
Els fitxers públics (icona del gatet) contenen:
main.cc | el programa principal |
Makefile | per compilar amb make còmodament |
.vscode | per poder debuggar amb F5 |
Cal implementar remove_zeros_skipping
en un fitxer .cc
nou i enviar només aquest fitxer amb la funció.
Input
a 0 b 0 0 a 0 b 0 1 a 1 b 2 c 3 1 a 1 b 0 c 3 d 0 1 a 1 b 0 c 3 d 0 2 a 1 b 0 c 3 d 0 3
Output
a 0 a 1 b 2 c 3 a 1 b 0 c 3 a 1 b 0 c 3 d 0 a 1 b 0 c 3 d 0
Input
o 2 d 0 p 1 t 1 f 1 0 h 0 f 2 t 2 0 r 2 a 1 t 2 1 g 2 k 2 l 0 p 0 0 h 0 b 2 x 0 b 0 y 2 m 2 0 i 2 o 1 u 0 a 0 0 s 2 u 1 u 1 k 0 a 1 w 1 0 r 1 0 d 0 s 0 r 2 1 w 0 a 2 d 2 j 1 v 1 1
Output
o 2 p 1 t 1 f 1 f 2 t 2 r 2 a 1 t 2 g 2 k 2 b 2 y 2 m 2 i 2 o 1 s 2 u 1 u 1 a 1 w 1 r 1 d 0 r 2 w 0 a 2 d 2 j 1 v 1