Teniu una matriu d’enters. Us donen una seqüència de posicions (fila, columna) dins de la matriu, les quals formen una trajectòria on tots els moviments són horitzontals o verticals. Feu un programa que calculi la suma dels valors de les posicions visitades.
Utilitzant la definició
typedef vector<vector<int> > Matriu;
el vostre programa ha d’incloure i fer servir la funció
int suma_linia(const Matriu& mat, int of, int oc, int df, int dc);
que retorna la suma de tots els elements de la línia de la matriu |mat| que comença a la posició (|of|, |oc|) i acaba a la posició (|df|, |dc|), amb la primera posició exclosa, i l’última posició inclosa. Assumiu que les posicions donades estan dins de la matriu, que (|of|, |oc|) (|df|, |dc|), i que o bé |of| |df| o bé |oc| |dc|.
L’entrada consisteix en el nombre de files i el nombre de columnes , seguits de línies, cadascuna amb els enters d’una fila. A continuació ve una seqüència no buida de posicions (fila, columna) que determinen un camí. Totes les files estan entre 0 i . Totes les columnes estan entre 0 i . Dues posicions consecutives mai són iguals.
Escriviu la suma total dels valors de les posicions del camí, comptant cada nombre tantes vegades com hi passeu per sobre. Seguiu el format dels exemples.
Input
3 4 7 8 5 6 3 4 9 5 1 2 3 4 0 0 2 0 2 2 1 2 1 3 0 3 0 1
Output
suma = 49
Input
1 4 -3 100 8 -20 0 3 0 1 0 2 0 0
Output
suma = 193
Input
1 1 7 0 0
Output
suma = 7