Cerinţa
Se dă o matrice cu n
linii şi n
coloane şi elemente numere naturale. Cele două diagonale delimitează în matrice 4
zone:
NORD
– elementele situate deasupra diagonalei principale şi deasupra celei secundareEST
– elementele situate deasupra diagonalei principale şi sub cea secundarăSUD
– elementele situate sub diagonala principală şi sub cea secundarăVEST
– elementele situate sub diagonala principală şi deasupra celei secundare
Să se afişeze, în ordine crescătoare, sumele elementelor din cele patru zone.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n*n
numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire
Programul afișează pe ecran numerele S1 S2 S3 S4
, separate printr-un spaţiu, cu semnificaţia precizată.
Restricţii şi precizări
1 ≤ n ≤ 100
- elementele matricei vor fi mai mici decât
1.000
Exemplu
Date de intrare
5 3 1 8 5 4 7 8 5 1 2 2 2 6 7 3 9 8 1 3 6 7 5 3 1 7
Date de ieșire
10 18 19 20
#include <bits/stdc++.h> using namespace std; int main() { int n , a[101][101] , nord = 0, sud = 0, vest = 0, est = 0 , v[4]; cin >> n; for(int i = 0 ; i < n ; i++) for(int j = 0 ; j < n ; j++) cin >> a[i][j]; for(int i = 0 ; i < n ; i++) for(int j = 0 ; j < n ; j++) { if(i < j && i + j < n - 1) nord += a[i][j]; else if(i < j && i + j > n - 1) est += a[i][j]; else if(i > j && i + j < n - 1) vest += a[i][j]; else if(i > j && i + j > n - 1) sud += a[i][j]; } v[1] = nord; v[2] = sud ; v[3] = est; v[4] = vest; sort(v+1 , v +5); for(int i = 1 ; i<= 4 ; ++i) cout <<v[i] << " "; }