# PBinfo #4239 – MatDiag – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerinţa
Scrieţi definiția completă a subprogramului C++ cu antetul:

int MatDiag(int a[100][100], int n)
care are doi parametri:  


a, prin care primeşte un tablou bidimensional care memorează numere întregi
n, numărul de linii și coloane ale tabloului

Subprogramul returnează 1 dacă orice diagonală paralelă cu diagonala principală conține elemente identice, sau returnează 0 dacă există cel puțin o diagonală în care nu sunt toate elementele identice.

Restricţii şi precizări

3 ≤ n ≤ 100
Atât liniile cât și coloanele matricei sunt indexate de la 0 la n-1.

Exemple:
Dacă n=3 și matricea a este:
1 2 5
4 1 2
7 4 1
atunci funcția returnează 1.

Dacă n=4 și matricea a este:
1 2 5 8
4 1 2 5
7 4 1 2
0 7 3 1
atunci funcția returnează 0, deoarece pe diagonala formată din numerele 4 4 3 nu sunt toate elementele identice.

Important
Soluţia propusă va conţine doar definiţia subprogramului cerut. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
int MatDiag(int a[100][100], int n)
{
    for (int i = 1; i < n; i++)
        for (int j = 1; j < n; j++)
            if (a[i][j] != a[i - 1][j - 1]) return 0;
    return 1;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/4239)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/4239/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-4239/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
