Нужно рассчитать как выгодно купить товар алгоритмически - VB

Формулировка задачи:

Всем привет! Задача: Требуется купить 5шт. одного и того же товара, но у всех разные цены и не у каждого есть требуемое количество, итак: Магазин1, цена 10р., доступно 1шт. товара Магазин2, цена 20р., доступно 2шт. товара Магазин3, цена 40р., доступно 5шт. товара Магазин4, цена 30р., доступно 3шт. товара Нужно получить план с выгодной покупкой, т.е.: а) Купить 1шт. в Магазине1 б) Купить 1шт. в Магазине2 в) Купить 3шт. в Магазине4 Как алгоритмически всё реализовать? Как посравнивать кучу цен с учётом по количеству? Думал что такой код пройдёт, но нет, на выше приведённой задаче - не срабатывает.
Dim arrTemp(2,3)    As Single     '0-номер магазина;1-цена товара;3-доступное количество;
Dim ia              As Integer
Dim ib              As Integer    'номер в массиве с минимальной ценой
Dim iCount          As Integer    'требуемое кол-во
 
arrTemp(0,0) = 1
arrTemp(1,0) = 10
arrTemp(2,0) = 1
 
arrTemp(0,1) = 2
arrTemp(1,1) = 20
arrTemp(2,1) = 2
 
arrTemp(0,2) = 3
arrTemp(1,2) = 40
arrTemp(2,2) = 4
 
arrTemp(0,3) = 4
arrTemp(1,3) = 30
arrTemp(2,3) = 3
 
 
For ia = 0 To UBound(arrTemp, 2)            
   If (arrTemp(1, ib) = 0 Or arrTemp(1, ib) > arrTemp(1, ia) And (arrTemp(1, ia) > 0)) And (arrTemp(2, ia) >= iCount) Then
          ib = ia
   End If
Next
Ну уже вообще голова не варит. И с кейсами пытался, и так и сяк... Чего-то не дотумкиваю, где-то. Может кто посвежее будет на голову, да подскажет решеньице?

Код к задаче: «Нужно рассчитать как выгодно купить товар алгоритмически - VB»

textual
Private Sub SortMinPrice(ByRef S() As typeShop)
    Dim i As Integer, j As Integer, t As typeShop
    For i = 1 To UBound(S)
        For j = 1 To UBound(S) - 1
           If S(j).Price > S(j + 1).Price Then
               t = S(j + 1)
               S(j + 1) = S(j)
               S(j) = t
           End If
       Next j
    Next i
End Sub

12   голосов, оценка 4.250 из 5


СОХРАНИТЬ ССЫЛКУ