324
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 nnumere naturale, reprezentând cantitățile necesare din fiecare produs- numărul de magazine
m mșiruri de câtennumere, șiruliconținând în ordine prețurile celornproduse la magazinuli. 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.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n , m , v[101] , a[101][101] , s = 0 , mini = 100000000;
cin >> n;
for(int i = 0 ; i < n ; ++i) cin >> v[i];
cin >> m;
for(int i = 0 ; i < m ; ++i)
for(int j = 0 ; j < n ; ++j)
cin >> a[i][j];
for(int i = 0 ; i < m ; ++i)
{
s = 0;
for(int j = 0 ; j < n ; ++j)
{
s += a[i][j] * v[j];
if(a[i][j] == -1) s+=100000000;
}
if(s < mini) mini = s;
}
cout << mini;
return 0;
}
Comentarii