(defvar n (read)) (defparameter a (sort (apply #'vector -100000000 (loop repeat (1- n) collect (read))) #'<)) (defvar f nil) (loop for i from 1 to (1- n) until f do (unless (<= (aref a i) i) (setq f t))) (if f (progn (princ "NO") (fresh-line)) (progn (princ "YES") (fresh-line) (loop for i from 1 to (1- n) do (princ (1+ (- i (aref a i)))) (fresh-line)))) ;(princ a)