# PBinfo #771 – ordlin – Rezolvare C++

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

## Enunț

Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Să se ordoneze liniile matricei crescător după suma elementelor.

Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.

Date de ieşire
Programul afișează pe ecran elementele matricei transformate, câte un linie a matricei pe o linie a ecranului, elementele de pe o linie fiind separate prin câte un spațiu.

Restricţii şi precizări

1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 1.000.000

Exemplu:
Date de intrare

4 6
4 20 15 23 18 9 
1 8 23 22 14 18 
17 15 13 18 12 15 
3 18 8 20 12 5 
Date de ieșire

3 18 8 20 12 5 
1 8 23 22 14 18 
4 20 15 23 18 9 
17 15 13 18 12 15

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n, m, mat[101][101], v[101], s[101];
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            cin >> mat[i][j];
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            s[i] = s[i] + mat[i][j];
    for (int j = 1; j <= n; j++) v[j] = j;
    for (int i = 1; i < n; i++)
        for (int t = i + 1; t <= n; t++)
            if (s[v[i]] > s[v[t]]) {
                int temp = v[i];
                v[i] = v[t];
                v[t] = temp;
            } for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            cout << mat[v[i]][j] << " ";
        } cout << endl;
    } return 0;
}
```

## Resurse

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