fbpx

Problema #781 – Zone1 – Rezolvari PBInfo

de Mihai-Alexandru

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 secundare
  • EST – 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] << " ";

}
Comentarii

S-ar putea sa iti placa