#!/usr/bin/env gosh (define (can-resolve? lst) (if (not (= 0 (list-ref lst 1))) #t (if (or (= 0 (list-ref lst 0)) (= 0 (list-ref lst 2))) #f #t))) (define (count d lst) (let ((d12 (- (cadr lst) (car lst))) (d23 (- (cadr lst) (caddr lst)))) (if (positive? (* d12 d23)) 0 (+ 1 (div (min (abs d12) (abs d23)) d))))) (let* ((d (read)) (h1 (read)) (h2 (read)) (h3 (read)) (hlist `(,h1 ,h2 ,h3))) (if (or (not (can-resolve? hlist)) (= d 0)) (display -1) (display (count d hlist))) (newline))