fork download
  1. ; jump
  2.  
  3. (define (jump xs)
  4. (let loop ((reachable 0) (xs xs))
  5. (if (null? xs) #t
  6. (let ((next (max (- reachable 1) (car xs))))
  7. (if (zero? next) #f (loop next (cdr xs)))))))
  8.  
  9. (display (jump '(1 3 3 0 0 2 0 4 1 3 0))) (newline)
  10. (display (jump '(2 0 3 5 0 0 3 0 0 6 3))) (newline)
  11. (display (jump '(3 1 4 3 5 0 0 0 3 1 0))) (newline)
  12. (display (jump '(4 4 0 3 0 1 2 2 1 0 0))) (newline)
  13. (display (jump '(3 2 0 1 4 3 1 0 0 0 0))) (newline)
  14. (display (jump '(5 2 0 0 1 0 6 0 0 2 9))) (newline)
Success #stdin #stdout 0.01s 8672KB
stdin
Standard input is empty
stdout
#t
#t
#t
#f
#f
#f