# PBinfo #220 – prodmax – Rezolvare C++

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

## Enunț

Se consideră tabloul bidimensional cu m linii şi n coloane, care conţine doar valorile {0,1,2}.

Cerinţa
Să se determine numerele de ordine ale coloanelor pentru care produsul elementelor este maxim.

Date de intrare
Fişierul de intrare prodmax.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 prodmax.out va conţine pe prima linie numerele cerute, separate prin spatii, în ordine crescătoare.

Restricţii şi precizări

2≤m,n≤100
numere de ordine ale liniilor sunt între 1 şi m
numere de ordine ale coloanelor sunt între 1 şi n

Exemplu:
prodmax.in

4 4
2 1 1 0
1 1 1 1
2 2 2 1
1 2 1 1
prodmax.out

1 2

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream in("prodmax.in");
ofstream out("prodmax.out");
int main() {
	int mat[105][105], n, m;
    in >> n >> m;
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= m; ++j)
            in >> mat[i][j];
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= m; ++j)
            if (mat[i][j] == 0)
            	mat[0][j]++;
            else if (mat[i][j] == 2)
                mat[n + 1][j]++;
    int maxim = 0;
    for (int j = 1; j <= m; ++j)
        if (mat[0][j] == 0 && mat[n + 1][j] > maxim)
        	maxim = mat[n + 1][j];
    for (int j = 1; j <= m; ++j)
        if (mat[0][j] == 0 && mat[n + 1][j] == maxim)
            out << j << " ";
    return 0;
}
```

## Resurse

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