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);
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.)
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.)
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