CSES - Eri kolikot

Annettuna on nn kolikkoa ja summa xx. Laske, monellako eri tavalla summa voidaan muodostaa kolikoista.

Tässä tehtävässä kaksi tapaa ovat erilaiset, jos järjestetyt listat ovat erilaisia. Esimerkiksi [1,4][1,4] ja [2,3][2,3] ovat eri tavat, mutta [1,4][1,4] ja [4,1][4,1] eivät ole.

Voit olettaa, että 1n101 \le n \le 10 ja 1x1001 \le x \le 100. Algoritmisi tulee toimia tehokkaasti kaikissa tapauksissa.

Toteuta tiedostoon diffcoin.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
    print(count(13, [1, 2, 5])) # 14
    print(count(42, [1, 5, 6, 17])) # 58
    print(count(99, [2, 4, 6])) # 0