(define (iota n . args) (let ((start (if (pair? args) (car args) 0)) (step (if (and (pair? args) (pair? (cdr args))) (cadr args) 1))) (let loop ((m n) (last (+ start (* step (- n 1)))) (a '())) (if (zero? m) a (loop (- m 1) (- last step) (cons last a)))))) (define (sum a) (if (null? a) 0 (+ (car a) (sum (cdr a))))) (define (solve K N F A) (max -1 (- (* K N) (sum A)))) (display (let ((K (read)) (N (read)) (F (read))) (let ((A (map (lambda (x) (read)) (iota F)))) (solve K N F A)))) (newline)