# PBinfo #597 – Poza – Rezolvare C++

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

## Enunț

Cerința
Fie o poză dată sub forma unei matrice cu n linii și m coloane, în care elementele sunt 0 sau 1: un element 0 reprezintă fundalul imaginii, iar un element 1 reprezintă obiect din prim plan. Este necesară tăierea unei bucăți din imagine astfel încât:


laturile bucății tăiate sunt paralele cu laturile pozei inițiale și cât mai mici;
toate obiectele din prim-plan în poza inițială apar în poza tăiată;

Determinați dimensiunile pozei tăiate, precum și conținutul ei.

Date de intrare
Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m valori 0 sau 1, reprezentând poza inițială.

Date de ieșire
Programul va afișa pe ecran numerele p q, separate printr-un spațiu, reprezentând dimensiunile pozei tăiate, apoi p linii cu câte q valori separate prin exact un spațiu, reprezentând poza tăiată.

Restricții și precizări

1 ≤ n,m ≤ 100
în poză va exista cel puțin un element de prim-plan

Exemplu:
Intrare

5 6
0 0 0 0 0 0
0 0 1 0 1 0
0 1 1 1 1 1
0 0 0 0 1 0
0 0 0 0 0 0
Ieșire

3 5
0 1 0 1 0
1 1 1 1 1
0 0 0 1 0

## Cod sursă C++

```cpp
//problema poza
/*
 *  Determinam cel mai de sus, mai de jos, mai din stanga si mai din dreapta obiect de prim plan si
 * 	afisam elementele dintre acestea
 * 
 * */
#include <iostream>
using namespace std;
int a[1001][1001], n, m;
int main(){
	cin  >> n >> m;
	for (int i = 1 ;i <= n ; ++i)
		for(int j = 1 ; j <= m ; ++j)
			cin >> a[i][j];
	int imin = n+1, imax = 0, jmin = m + 1, jmax = 0;
	for (int i = 1 ;i <= n ; ++i)
		for(int j = 1 ; j <= m ; ++j)
			if(a[i][j] == 1)
			{
				if(i < imin) imin = i;
				if(i > imax) imax = i;
				if(j < jmin) jmin = j;
				if(j > jmax) jmax = j;
			}
	cout << imax - imin + 1  << " " << jmax - jmin + 1 << endl;
	for (int i = imin ;i <= imax ; ++i){
		for(int j = jmin ; j <= jmax ; ++j)
			cout << a[i][j] << " ";
		cout << endl;
	}
	return 0;
}
```

## Resurse

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