Sea M una matriz cuadrada N × N. Esta matriz tiene marcos diferentes. El marco 0 está formado por las filas 0 y N−1 y las columnas 0 y N−1. El marco 1 está formado por las filas 1 y N−2 y las columnas 1 y N−2, excluyendo las partes que forman parte del marco 0, etc.
En el siguiente ejemplo, tiene que el marco 0 lo forman todas las posiciones en el que hay un 0, el marco 1 las posiciones en las que hay un 1, y el marco 2 las posiciones en las que hay 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
Es necesario implementar la función int sumaMarc(const Matriu& m, int x);
con la siguiente especificación:
PRE:
m una matriz N × N y 0 ≤ x < N/2 + (N mod 2).
POST:
Vuelve la suma de los elementos del marco x de M.
Observación
Sólo tiene que enviar la función que le pedimos y las funciones que ustedes defina. El resto no se tendrá en cuenta.
Entrada
Una matriz N × N y 0 ≤ x < N/2 + (N mod 2).
Salida
La suma de los elementos del marco x de 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