(defvar c) (defvar w) (defvar p) (setq p 1) (setq c nil) (setq w nil) (loop for char = (read-char nil nil) do (case char (#\c (setq c (append c (list p)))) (#\w (setq w (append w (list p)))) (#\Newline (return))) (incf p) ) ;(setq c '(1 3 10)) ;(setq w '(5 8 11)) ;(print c) ;(print w) (defvar X) (defvar Y) (defvar Z) (defvar ans) (defvar m) (setq ans -1) (setq m nil) (loop for i in c do (setq Y nil) (setq Z nil) (setq Y (position-if (lambda (x) (> x i)) w) ) ;(format t "Y=<~d>~%" Y) (if (not (null Y)) (setq Z (nth (+ Y 1) w))) ;(format t "=<~d>~%" (nth (+ Y 1) w)) ;(format t "Z=<~d>~%" Z) (if (and (not (null Y)) (not (null Z))) (progn (setq ans (+ (- Z i) 1) ) ;(format t "ans=<~d> m=<~d>~%" ans m) (setq m (if (null m) ans (if (< ans m) ans m))) )) ) (format t "~d~%" (if (null m) -1 m))