(define (counts xs n)
(let ((cs (make-vector (+ n 1) 0)))
(vector-set! cs 0 1)
(do ((xs xs (cdr xs)))
((null? xs) (vector-ref cs n))
(do ((x (car xs) (+ x 1))) ((< n x))
(vector-set! cs x (+ (vector-ref cs x)
(vector-ref cs (- x (car xs)))))))))
(display (counts '(1 5 10 25 50) 100))
KGRlZmluZSAoY291bnRzIHhzIG4pCiAgKGxldCAoKGNzIChtYWtlLXZlY3RvciAoKyBuIDEpIDApKSkKICAgICh2ZWN0b3Itc2V0ISBjcyAwIDEpCiAgICAoZG8gKCh4cyB4cyAoY2RyIHhzKSkpCiAgICAgICAgKChudWxsPyB4cykgKHZlY3Rvci1yZWYgY3MgbikpCiAgICAgIChkbyAoKHggKGNhciB4cykgKCsgeCAxKSkpICgoPCBuIHgpKQogICAgICAgICh2ZWN0b3Itc2V0ISBjcyB4ICgrICh2ZWN0b3ItcmVmIGNzIHgpCiAgICAgICAgICAodmVjdG9yLXJlZiBjcyAoLSB4IChjYXIgeHMpKSkpKSkpKSkKCihkaXNwbGF5IChjb3VudHMgJygxIDUgMTAgMjUgNTApIDEwMCkp