# PBinfo #224 – rotire – Rezolvare C++

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

## Enunț

Cerinţa
Se consideră tabloul bidimensional cu m linii şi n coloane şi elemente numere naturale. Să se construiască un nou tablou bidimensional cu n linii şi m coloane, obţinut din primul prin rotirea acestuia în sens trigonometric cu 90 o.

Date de intrare
Fişierul de intrare rotire.in conţine pe prima linie numerele m şi n, iar pe următoarele m linii câte n numere naturale separate prin spaţii, reprezentând elementele tabloului.

Date de ieşire
Fişierul de ieşire rotire.out va conţine tabloul nou construit, câte o linie a tabloului pe o linie a fişierului, elementele fiecărei linii fiind separare printr-un spaţiu

Restricţii şi precizări

2≤m,n≤10
elementele tabloului sunt numere naturale mai mici decât 2.000.000.000

Exemplu:
rotire.in

4 5
21 22 23 24 25
26 27 28 29 30
31 32 33 34 35
36 37 38 39 40 
rotire.out

25 30 35 40
24 29 34 39
23 28 33 38
22 27 32 37
21 26 31 36

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream in("rotire.in");
ofstream out("rotire.out");
int main(){
	int mat[101][101], n, m, mat_rot[101][101];
    in >> m >> n;
    for (int i = 1; i <= m; ++i)
        for (int j = 1; j <= n; ++j)
            in >> mat[i][j];
    for (int j = 1; j <= n; ++j)
        for (int i = 1; i <= m; ++i)
            mat_rot[n - j + 1][i] = mat[i][j];
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j)
            out << mat_rot[i][j] << " ";
        out << endl;
    } return 0;
}
```

## Resurse

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