(define (read-number) (string->number (read-line))) (let* ((l (read-number)) (m (read-number)) (n (read-number)) (total (+ n (* m 25) (* l 100)))) (define pat '()) (let loop-n1 ((n1 0)) (cond ((< n1 50) (let loop-n25 ((n25 0)) (cond ((< n25 50) (let loop-n100 ((n100 0)) (cond ((< n100 50) (let loop-n1000 ((n1000 0)) (cond ((< n1000 50) (cond ((= total (+ n1 (* n25 25) (* n100 100) (* n1000 1000))) (push! pat (+ n1 n25 n100)))) (loop-n1000 (+ n1000 1))))) (loop-n100 (+ n100 1))))) (loop-n25 (+ n25 1))))) (loop-n1 (+ n1 1))))) (print (apply min pat)))