fbpx

Problema #991 – Matrice5 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă o matrice pătratică cu n linii și n coloane, numerotate de la 1 la n și elemente numere naturale. Să se determine suma elementelor aflate strict deasupra diagonalei secundare a matricei.

Se va defini și folosi subprogramul sub, cu 3 parametri:

  • n – dimensiunea matricei
  • x – matricea
  • k – un număr natural, 1 < k ≤ 2*n

care va returna suma tuturor elementelor aij din matrice pentru care i + j = k.

Date de intrare

Fișierul de intrare matrice5.in conține pe prima linie numărul n, iar următoarele n linii câte n numere naturale, reprezentând elementele matricei.

Date de ieșire

Fișierul de ieșire matrice5.out va conține pe prima linie suma determinată.

Restricții și precizări

  • 1 ≤ n ≤ 100
  • elementele matricei sunt numere naturale mai mici decât 1000
  • liniile matricei sunt numerotate de la 1 la n.

Exemplu

matrice5.in

4 
1 6 3 1
6 1 3 1
1 3 1 6
3 1 6 1

matrice5.out

18
#include <bits/stdc++.h>
using namespace std;

ifstream cin("matrice5.in");
ofstream cout("matrice5.out");

int sub(int n, int a[][101], int k){
    int sum = 0;
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= n; ++j)
            if(i + j == k)
                sum += a[i][j];
    return sum;
}

/*
    a[1][1], a[1][2], a[1][3]
    a[2][1], a[2][2], a[2][3]
    a[3][1], a[3][2], a[3][3]
*/

int main(){

    int n, a[101][101];
    cin >> n;
    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= n; ++j)
            cin >> a[i][j];

    int sum = 0;
    for(int i = 2; i <= n; ++i)
        sum += sub(n, a, i);

    cout << sum;

    return 0;
}
Comentarii

S-ar putea sa iti placa