Sigui M una matriu quadrada N × N. Aquesta matriu té diferents marcs. El marc 0 està format per les files 0 i N−1 i les columnes 0 i N−1. El marc 1 està format per les files 1 i N−2 i les columnes 1 i N−2, excloent les parts que són part del marc 0, etc.
En el següent exemple, teniu que el marc 0 el formen totes les posicions en què hi ha un 0, el marc 1 les posicions en què hi ha un 1, i el marc 2 les posicions en què hi ha un 2:
0 0 0 0 0 0 1 1 1 0 0 1 2 1 0 0 1 1 1 0 0 0 0 0 0
Cal implementar la funció int sumaMarc(const Matriu& m, int x);
amb la següent especificació:
PRE:
m una matriu N × N i 0 ≤ x < N/2 + (N mod 2).
POST:
Torna la suma dels elements del marc x d’M.
Observació
Només cal que envieu la funció que us demanem i les funcions que vosaltres definiu. La resta no es tindrà en compte.
Entrada
Una matriu N × N i 0 ≤ x < N/2 + (N mod 2).
Sortida
La suma dels elements del marc x d’M.
ENTRADA 1: 5 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 0 1 2 SORTIDA 1: El marc 0 suma 16 El marc 1 suma 16 El marc 2 suma 3 ENTRADA 2: 4 1 2 3 1 2 1 3 2 2 3 5 3 1 2 2 1 0 1 SORTIDA 2: El marc 0 suma 22 El marc 1 suma 12 ENTRADA 3: 6 1 1 1 1 0 7 1 0 2 2 2 1 4 2 3 5 2 2 1 2 0 3 0 1 1 1 2 2 2 1 1 1 1 1 1 0 0 1 2 SORTIDA 3: El marc 0 suma 28 El marc 1 suma 19 El marc 2 suma 11