Cześć mam problem, pisze bankomat dynamiczny w C++ (wydawanie reszty)
Uzytkownik wpisuje w kolejnosci: kwote, n:=ilosc nominalow i n nominalow.
Program poprawnie wyswietla ile minimalnie da sie wyplacic banknotow, lecz nie wiem co zrobic by wyswietlaly sie tez te nominaly ktorych uzyto np.
dla kwoty = 13, iloscNominalow = 3, nominaly: 5,2,1 Powinien wyswietlic:
4
5 5 2 1.
Domyslam sie ze musze zrobic jakas tablice lokalna gdzie zapisuja sie te nominaly ale nie wiem jak to zrobic, pomoze ktos? Moj kod:
#include <iostream>
#include <algorithm>
using namespace std;
const unsigned long INFINITY=10e6;
int main (){
int kwota,nominaly[2000],T[2000],iloscNominalow,m,ODP[100];
cin >> kwota;
cin >> iloscNominalow;
for(int j=1; j<=iloscNominalow; ++j)
cin >> nominaly[j];
T[0]=0;
for(int i=1; i<=kwota; ++i)
T[i]=INFINITY;
int index=1;
for(int s=1; s<=iloscNominalow; ++s){
m=nominaly[s];
for(int b=0; b<=kwota-m; ++b){
if(T[b]<INFINITY){
if(T[b]+1<T[b+m]){
T[b+m]=T[b]+1;
// Tu dalej nie wiem
}
}
}
}
if(T[kwota]==INFINITY) cout << "NIE DA SIE WYPLACIC!";
else{
cout << T[kwota] << endl;
for(int i=1; i<=T[kwota]; ++i) cout << ODP[i] << " ";
}
return 0;
}