# PBinfo #3417 – GenMat28 – Rezolvare C++

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

## Enunț

Cerința
Scrieți un program care citește de la tastatură un număr natural n și construiește o matrice cu n linii și n coloane ale cărei elemente vor primi valori dupa cum urmează:


În colțul din stânga sus, de coorodnate 1 1, va fi 1.
În pozițiile adiacente, de coordonate 1 2 și 2 1, va fi n.
În pozițiile adiacente, de coordonate 1 3, 2 2 și 3 1, va fi 2.
În pozițiile adiacente, de coordonate 1 4, 2 3, 3 2 și 4 1, va fi n-1.
Și așa mai departe…
În penultimele poziții, de coordonate n-1 n și n n-1, va fi n.
În ultima poziție, de coordonate n n, va fi 1.

Date de intrare
Programul citește de la tastatură numarul n.

Date de ieșire
Programul afișează pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.

Restricții și precizări

3 ≤ n ≤ 30

Exemplu
Intrare

5
Ieșire

1 5 2 4 3
5 2 4 3 4
2 4 3 4 2
4 3 4 2 5
3 4 2 5 1
Explicație
S-a citit 5 și se afisează o matrice de 5 linii și 5 coloane, unde 1 se află in colțul din stânga sus, apoi în pozițiile învecinate se află 5, apoi 2 și tot așa până se va completa matricea.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int v[61],lc,n,st,dr;
int main()
{
    cin>>n;
    st=1;
    dr=n;
    for(int i=1;i<=2*n;i++){
        if(i%2==1){
            if(v[i-1]!=st){
                v[++lc]=st;
                st++;
            }
            else{
                st++;
            }
        }
        else{
            if(v[i-1]!=dr){
                v[++lc]=dr;
                dr--;
            }
            else{
                dr--;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<v[i+j-1]<<" ";
        }
        cout<<endl;
    }
    return 0;
}
```

## Resurse

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