graphlogo

Wydział Matematyki i Informatyki

Uniwersytetu Mikołaja Kopernika w Toruniu

2inf 2023/24 Algorytmy i struktury danych - LE, LF

[bz] Bankomat zachłanny
Data zakończenia: 2023-12-31 23:59
Języki: c cpp
Limit czasu: 100.0 s
Limit pamięci: 100 MB
Limit rozmiaru rozwiązania: 20 kB


Problem
Znalezienie minimalnej liczby banknotów/monet (z ustalonej puli nominałów) potrzebnych do wypłacenia danej kwoty. Użyj metody zachłannej. Zakładamy, że liczba banknotów/monet o ustalonych nominałach jest nieograniczona.

Wejście
W pierwszej linii liczba naturalna 0 < k = kwota do wypłacenia.
W drugiej linii liczba naturalna 1 <= n <= 1000, w trzeciej linii n oddzielonych spacjami liczb naturalnych 0 < A[1],...,A[n] = ustalone nominały.

Wyjście - dwie możliwości
(1) Gdy rozwiązanie nie istnieje, bądź nie może być znalezione metodą zachłanną, na wyjściu powinien się pojawić jedynie napis 'NIE'.

(2) W przeciwnym wypadku: liczba naturalna t = "minimalna" liczba banknotów/monet potrzebnych do wypłacenia kwoty k;
w drugiej linii, oddzielone spacjami liczby S[1],...,S[t] = nominały użyte do wypłacenia kwoty k (tj. S[1]+...+S[t]=k). Wartości S[1],...,S[t] posortowane nierosnąco.




Wskazówka
Posortuj najpierw nominały w tablicy A[1..n].



Przykładowe wejście I
23
3
2 1 5


Wynik I
6
5 5 5 5 2 1



Przykładowe wejście II
6
2
2 5


Wynik II
NIE


Powrót
© 2009-2020 • ZawodyWeb Team
IKS - Inwestycja w Kierunki Strategiczne na Wydziale Matematyki i Informatyki UMK

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego