#-swank (unless (member :child-sbcl *features*) (quit :recklessly-p t :unix-status (process-exit-code (run-program *runtime-pathname* `("--control-stack-size" "1024MB" "--noinform" "--disable-ldb" "--lose-on-corruption" "--end-runtime-options" "--eval" "(push :child-sbcl *features*)" "--script" ,(namestring *load-pathname*)) :output t :error t :input t)))) (defun main () (let* ((N (read)) (S (read)) (P (loop for i from 1 to N collect (read))) (p (append (mapcar #'(lambda (x i) (list x (1+ i))) P (loop for i from 0 below N collect i)) (list (list (- (ash 1 60)) -1) (list (ash 1 60) -1))))) (setf p (sort p #'< :key #'first)) (let ((ans (loop for i from 1 below (1+ N) for near = (min (- (first (nth i p)) (first (nth (1- i) p))) (- (first (nth (1+ i) p)) (first (nth i p)))) if (> near S) collect (second (nth i p))))) (setf ans (sort ans #'<)) (format t "~D~%" (length ans)) (dolist (elem ans) (format t "~D " elem)) (terpri)))) (main)