F009A. Recorrent matrius P35971


Statement
 

pdf   zip

html

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

Entrada

L’entrada consisteix en el nombre de files n i el nombre de columnes m, seguits de n línies, cadascuna amb els m 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 n − 1. Totes les columnes estan entre 0 i m − 1. Dues posicions consecutives mai són iguals.

Sortida

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.

Public test cases
  • 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
    
  • Information
    Author
    Professorat de P1
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++