fork download
  1. (defparameter *sample-in* '((4 1 4 2 3)
  2. (8 1 6 -1 8 9 5 2 7)))
  3.  
  4. (defparameter *challenge-in* '((4 1 4 2 3)
  5. (5 1 4 2 -1 6)
  6. (4 19 22 24 21)
  7. (4 19 22 24 25)
  8. (4 2 -1 0 2)))
  9.  
  10. (defun jolly-jumper-p (jolly-list)
  11. (let ((len (1- (car jolly-list)))
  12. (jolly-list (cdr jolly-list)))
  13. (search (loop for i below len collecting (1+ i))
  14. (sort (remove-duplicates (butlast
  15. (loop for (x y) on jolly-list collecting
  16. (abs (- x (or y 0))))))
  17. #'<))))
  18.  
  19. (dolist (in (append *sample-in* *challenge-in*))
  20. (format t "~{~a ~}:~:[ Not~;~] Jolly~%" in (jolly-jumper-p in)))
Success #stdin #stdout 0s 203840KB
stdin
Standard input is empty
stdout
4 1 4 2 3 : Jolly
8 1 6 -1 8 9 5 2 7 : Not Jolly
4 1 4 2 3 : Jolly
5 1 4 2 -1 6 : Not Jolly
4 19 22 24 21 : Not Jolly
4 19 22 24 25 : Jolly
4 2 -1 0 2 : Jolly