(defun main (&rest argv) (declare (ignorable argv)) (let* ((a (read)) (b (read)) (c (read)) (d (read)) (D (- (* (- a c) (- a c)) (* 8 (- b d))))) (cond ((minusp D) (format t "No~%")) ((zerop D) (format t "Yes~%")) (t (let* ((p (float a 0d0)) (q (float b 0d0)) (r (float c 0d0)) ;(s (float d 0d0)) (x1 (/ (- r p (sqrt (float D 0d0))) 4d0)) (x2 (/ (+ r (- p) (sqrt (float D 0d0))) 4d0)) (y1 (+ (* x1 x1) (* p x1) q)) (y2 (+ (* x2 x2) (* p x2) q)) (n (/ (- y2 y1) (- x2 x1))) (m (- y1 (* n x1)))) (format t "~f ~f~%" n m)))))) (main)