(defparameter *sample-in* '((4 1 4 2 3)
(8 1 6 -1 8 9 5 2 7)))
(defparameter *challenge-in* '((4 1 4 2 3)
(5 1 4 2 -1 6)
(4 19 22 24 21)
(4 19 22 24 25)
(4 2 -1 0 2)))
(defun jolly-jumper-p (jolly-list)
(let ((len (1- (car jolly-list)))
(jolly-list (cdr jolly-list)))
(search (loop for i below len collecting (1+ i))
(sort (remove-duplicates (butlast
(loop for (x y) on jolly-list collecting
(abs (- x (or y 0))))))
#'<))))
(dolist (in (append *sample-in* *challenge-in*))
(format t "~{~a ~}:~:[ Not~;~] Jolly~%" in (jolly-jumper-p in)))
KGRlZnBhcmFtZXRlciAqc2FtcGxlLWluKiAnKCg0IDEgNCAyIDMpCgkJCQkoOCAxIDYgLTEgOCA5IDUgMiA3KSkpCgooZGVmcGFyYW1ldGVyICpjaGFsbGVuZ2UtaW4qICcoKDQgMSA0IDIgMykKCQkJCSAgICg1IDEgNCAyIC0xIDYpCgkJCQkgICAoNCAxOSAyMiAyNCAyMSkKCQkJCSAgICg0IDE5IDIyIDI0IDI1KQoJCQkJICAgKDQgMiAtMSAwIDIpKSkKCihkZWZ1biBqb2xseS1qdW1wZXItcCAoam9sbHktbGlzdCkKICAobGV0ICgobGVuICgxLSAoY2FyIGpvbGx5LWxpc3QpKSkKCSAgICAoam9sbHktbGlzdCAoY2RyIGpvbGx5LWxpc3QpKSkKCShzZWFyY2ggKGxvb3AgZm9yIGkgYmVsb3cgbGVuIGNvbGxlY3RpbmcgKDErIGkpKQoJCShzb3J0IChyZW1vdmUtZHVwbGljYXRlcyAoYnV0bGFzdAoJCQkJCSAgKGxvb3AgZm9yICh4IHkpIG9uIGpvbGx5LWxpc3QgY29sbGVjdGluZwoJCQkJCSAgICAgICAoYWJzICgtIHggKG9yIHkgMCkpKSkpKQoJCSAgICAgICMnPCkpKSkKCihkb2xpc3QgKGluIChhcHBlbmQgKnNhbXBsZS1pbiogKmNoYWxsZW5nZS1pbiopKQogIChmb3JtYXQgdCAifnt+YSB+fTp+OlsgTm90fjt+XSBKb2xseX4lIiBpbiAoam9sbHktanVtcGVyLXAgaW4pKSk=