# PBinfo #608 – nkx – Rezolvare C++

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

## Enunț

Cerința
Se dau două numere naturale n și k, cu proprietatea că 2*k < n. Să se afişeze pe ecran elementele unei matrice pătratice de dimensiune n, formată din valorile 1 şi 2, construită astfel:


valorile de pe diagonala principală sunt 1;
valorile de pe k pseudodiagonale paralele cu diagonala principală şi situate imediat deasupra acesteia sunt 1;
valorile de pe k pseudodiagonale paralele cu diagonala principală şi situate imediat sub aceasta sunt 1;
valorile de pe diagonala secundară sunt 1;
valorile de pe k pseudodiagonale paralele cu diagonala secundară şi situate imediat deasupra acesteia sunt 1;
valorile de pe k pseudodiagonale paralele cu diagonala secundară şi situate imediat sub aceasta sunt 1;
restul valorilor din matrice sunt 2.

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

Date de ieșire
Programul va afișa pe ecran matricea construită, câte o linie a matrice pe o linie a ecranului, elementele de pe o line fiind separate prin exact un spaţiu.

Restricții și precizări

1 ≤ n ≤ 100

Exemplu:
Intrare

10 1
Ieșire

1 1 2 2 2 2 2 2 1 1 
1 1 1 2 2 2 2 1 1 1 
2 1 1 1 2 2 1 1 1 2 
2 2 1 1 1 1 1 1 2 2 
2 2 2 1 1 1 1 2 2 2 
2 2 2 1 1 1 1 2 2 2 
2 2 1 1 1 1 1 1 2 2 
2 1 1 1 2 2 1 1 1 2 
1 1 1 2 2 2 2 1 1 1 
1 1 2 2 2 2 2 2 1 1

## Cod sursă C++

```cpp
#include <bits/stdc++.h> 
using namespace std;
int n, k, mat[101][101];
int main() {
    cin >> n >> k;
    for (int i = 1; i <= n; i++) 
        for (int  j = 1; j <= n; j++)
            if (abs(i - j) <= k || (i + j >= n + 1 - k && i + j <= n + 1 + k  ) ) mat[i][j] = 1;
            else mat[i][j] = 2;
    for (int i = 1; i <= n; i++) {
        for (int  j = 1 ; j <= n; j++)
            cout << mat[i][j] << " ";
        cout << endl;
    } return 0;
}
```

## Resurse

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