CSES - Pienimmät määrät

Annettuna on nn kolikkoa ja summa xx. Laske, monellako tavalla summa xx voidaan muodostaa kolikoista niin, että kolikoiden määrä on pienin mahdollinen.

Voit olettaa, että 1n101 \le n \le 10 ja 1x1001 \le x \le 100. Yksi kolikoista on aina arvoltaan 11. Algoritmisi tulee toimia tehokkaasti kaikissa tapauksissa.

Toteuta tiedostoon minways.py funktio count, joka palauttaa tehtävän vastauksen.

def count(x, coins):
    # TODO

if __name__ == "__main__":
    print(count(5, [1])) # 1
    print(count(5, [1, 2, 3, 4])) # 4
    print(count(13, [1, 2, 5])) # 12
    print(count(42, [1, 5, 6, 17])) # 30

Selitys: Kun x=5x=5 ja kolikot ovat [1,2,3,4][1,2,3,4], mahdolliset tavat ovat [1,4][1,4], [2,3][2,3], [3,2][3,2] ja [4,1][4,1]. Tapojen määrä on 44.