F003A. Matrius pentadiagonals

Una matriu quadrada es diu pentadiagonal si tots els elements fora de la
diagonal principal i de les dues diagonals per sobre i per sota de la
diagonal principal són 0.

Per exemple, la matriu de l’esquerra és pentadiagonal, però la de la
dreta no (sí que ho seria si els 9 de la segona i sisena fila fóssin 0).

2  0  1  0  0  0  0  0  0  0   6  7  0  0  0  0  0  0  0
9  4  1  1  0  0  0  0  0  0   7  3  6  0  0  0  9  0  0
1  1  5  1  5  0  0  0  0  0   7  0  7  3  0  0  0  0  0
0  6  3  2  5  1  0  0  0  0   8  7  8  1  4  0  0  0  0
0  0  2  1  5  1  1  0  0  0   0  8  2  1  4  1  0  0  0
0  0  0  1  9  0  9  9  0  0   0  9  5  1  4  1  1  0  0
0  0  0  0  5  1  1  1  8  0   0  0  0  1  4  4  5  6  0
0  0  0  0  0  5  1  5  2  4   0  0  0  0  6  8  7  7  2
0  0  0  0  0  0  4  5  4  4   0  0  0  0  0  8  4  0  0
0  0  0  0  0  0  0  5  5  7   0  0  0  0  0  0  7  5  5

Utilitzant la definició

        typedef vector<vector<int> > Matriu;

implementeu la funció

        bool es_pentadiagonal(const Matriu& mat);

que indica si |mat| és pentadiagonal o no.

Utilitzant també la definició

        struct Info {
            int suma;
            int maxim;
        };

implementeu l’acció

        void calcula(const Matriu& mat, Info& inf);

que deixa en els camps |suma| i |maxim| del paràmetre de sortida |inf|
la suma i el màxim de tots els elements de |mat|, sota la precondició
que |mat| és pentadiagonal.

El programa principal ja se us dóna implementat; no el canvieu. Aquest
llegeix matrius quadrades d’enters i, per a cadascuna, si la matriu és
pentadiagonal escriu la suma i el màxim dels seus elements; altrament
escriu que no ho és.

Precondició

Les matrius |mat| són n × n amb n ≥ 6.

Informació del problema

Autoria: Professorat de P1

Generació: 2026-01-25T18:11:19.605Z

© Jutge.org, 2006–2026.
https://jutge.org
