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×nn\times n amb n6n\ge6.

Informació del problema

Autoria: Professorat de P1

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

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