# PBinfo #527 – Preturi1 – Rezolvare C++

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

## Enunț

Cerința
Gigel trebuie să cumpere n produse, pentru fiecare produs cunoscându-se cantitate necesară. În oraș sunt m magazine, în fiecare magazin găsindu-se produsele dorite la anumite prețuri. Determinați suma totală minimă necesară pentru a cumpăra produsele dorite, știind că Gigel trebuie să cumpere toate produsele din același magazin.

Date de intrare
Programul citește de la tastatură, în ordine:


numărul de produse n
n numere naturale, reprezentând cantitățile necesare din fiecare produs
numărul de magazine m
m șiruri de câte n numere, șirul i conținând în ordine prețurile celor n produse la magazinul i. Dacă la un magazin nu există un anumit produs, valoarea prețului va fi -1

Date de ieșire
Programul va afișa pe ecran numărul S, reprezentând suma minimă determinată.

Restricții și precizări

1 ≤ n , m ≤ 100
cantitățile necesare sunt numere naturale nenule mai mici sau egale cu 1000
prețurile produselor sunt numere naturale nenule mai mici sau egale cu 1000, sau -1, cu semnificația de mai sus
trebuie cumpărate toate produsele, din același magazin

Exemplu:
Intrare

5
4 4 5 1 2
3
 5 8 6 2 6
-1 4 1 1 5
 6 6 8 3 9
Ieșire

96
Explicație
La magazinul 1 produsele costă 96, la magazinul 3 produsele costă 109, iar din magazinul 2 nu se poate cumpăra produsul 1.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int v[105], a[105][105], n ,m;
int main(){
	cin  >> n;	
	for(int i = 1 ; i <= n ;  ++i)
		cin >> v[i];
	cin >> m;
	for(int i = 1 ; i <= m ; ++i)
		for(int j = 1 ; j <= n ; ++j)
			cin >> a[i][j];
	int smin = 1000 * 1000 * 100 + 5;
	for(int  i = 1 ; i <= m ; ++i)
	{
		bool ok = true;
		for(int j = 1 ; j <= n ; ++j)
			if(a[i][j] == -1)
				ok = false;
		if(ok)
		{
			int s = 0;
			for(int j =1 ; j <= n ; ++j)
				s += a[i][j] * v[j];
			if(s < smin)
				smin = s;
		}
	}
	cout << smin;
	return 0;
}
```

## Resurse

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