Wymień wszystkie kombinacje z zastąpieniem (lub kombinacje z powtórzeniem) rozmiaru k z zestawu n elementów.
Kombinacja z zamiennikiem to nieuporządkowany multiset, który zawiera każdy element w zestawie n elementów. Uwaga:
- To jest nieuporządkowane. Tak więc wcześniej wydrukowany zestaw w innym porządku nie powinien być ponownie drukowany.
- To jest multiset. Ten sam element może (ale nie jest wymagany) pojawiać się więcej niż jeden raz. Jest to jedyna różnica między kombinacją z wymianą a normalną kombinacją.
- Zestaw powinien mieć dokładnie k elementów.
Alternatywnie jest to również podzbiór rozmiaru k multiset, który zawiera każdy z n elementów k razy.
Dane wejściowe powinny mieć wartość n i k , gdzie elementy są pierwszymi n dodatnimi lub nieujemnymi liczbami całkowitymi, lub n elementów i k , gdzie można założyć, że n elementów różni się od siebie.
Wyjściem powinna być lista wszystkich kombinacji z zamianą na rozmiar k z podanego zestawu. Możesz wydrukować je i elementy w każdym z nich w dowolnej kolejności.
Nie możesz używać wbudowanych generujących kombinacje z zamianą. Ale możesz używać wbudowanych funkcji do generowania normalnych kombinacji, permutacji, krotek itp.
To jest golf, najkrótszy kod wygrywa.
Przykład
Input: 4 2
Output: [0 0] [0 1] [0 2] [0 3] [1 1] [1 2] [1 3] [2 2] [2 3] [3 3]