(defvar n (read)) (defvar x (read)) (defvar y (read)) (defvar a (loop repeat n collect (read))) (defvar s (apply #'+ a)) (defvar ax (apply #'vector (let ((m #.DOUBLE-FLOAT-NEGATIVE-INFINITY) (b #.DOUBLE-FLOAT-NEGATIVE-INFINITY)) (loop for i in a do (setq b (max (- x i) (+ b (- x i))) m (max m b)) collect m)))) (defvar bx (nreverse (apply #'vector (let ((m #.DOUBLE-FLOAT-NEGATIVE-INFINITY) (b #.DOUBLE-FLOAT-NEGATIVE-INFINITY)) (loop for i in (nreverse a) do (setq b (max (- y i) (+ b (- y i))) m (max m b)) collect m))))) (loop for m from 1 to (- n 2) do (princ (+ s (aref ax (1- m)) (aref bx (1+ m)))) (fresh-line)) ;(princ ax) ;(princ bx) ;(princ s)