#include <iostream>
#include <vector>
using namespace std;
int monety(int kwota, int sztuki) {
// nominały monet w kolejności od największego
vector<int> nominaly = {20, 10, 5, 2, 1};
int liczba = 0;
for(int i = 0; i < nominaly.size(); i++) {
// ile monet danego nominału możemy użyć
int ile = min(kwota / nominaly[i], sztuki - liczba);
kwota -= ile * nominaly[i];
liczba += ile;
if(kwota == 0) break;
}
// jeśli nie udało się wydać całej kwoty w dostępnej liczbie monet
if(kwota > 0) return liczba + kwota; // tu zakładamy, że dopłacamy resztę 1-ów
return liczba;
}
int main() {
cout << monety(11, 100) << " " << monety(99, 3) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1vbmV0eShpbnQga3dvdGEsIGludCBzenR1a2kpIHsKICAgIC8vIG5vbWluYcWCeSBtb25ldCB3IGtvbGVqbm/Fm2NpIG9kIG5handpxJlrc3plZ28KICAgIHZlY3RvcjxpbnQ+IG5vbWluYWx5ID0gezIwLCAxMCwgNSwgMiwgMX07CiAgICBpbnQgbGljemJhID0gMDsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbm9taW5hbHkuc2l6ZSgpOyBpKyspIHsKICAgICAgICAvLyBpbGUgbW9uZXQgZGFuZWdvIG5vbWluYcWCdSBtb8W8ZW15IHXFvHnEhwogICAgICAgIGludCBpbGUgPSBtaW4oa3dvdGEgLyBub21pbmFseVtpXSwgc3p0dWtpIC0gbGljemJhKTsKICAgICAgICBrd290YSAtPSBpbGUgKiBub21pbmFseVtpXTsKICAgICAgICBsaWN6YmEgKz0gaWxlOwogICAgICAgIGlmKGt3b3RhID09IDApIGJyZWFrOwogICAgfQoKICAgIC8vIGplxZtsaSBuaWUgdWRhxYJvIHNpxJkgd3lkYcSHIGNhxYJlaiBrd290eSB3IGRvc3TEmXBuZWogbGljemJpZSBtb25ldAogICAgaWYoa3dvdGEgPiAwKSByZXR1cm4gbGljemJhICsga3dvdGE7IC8vIHR1IHpha8WCYWRhbXksIMW8ZSBkb3DFgmFjYW15IHJlc3p0xJkgMS3Ds3cKICAgIHJldHVybiBsaWN6YmE7Cn0KCmludCBtYWluKCkgewogICAgY291dCA8PCBtb25ldHkoMTEsIDEwMCkgPDwgIiAiIDw8IG1vbmV0eSg5OSwgMykgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9