No.253 ロウソクの長さ on CommonLisp

;https://yukicoder.me/problems/no/253 (let ( (numMin 10 […]

;https://yukicoder.me/problems/no/253 (let ( (numMin 10 […]

  • タグ:
  • タグはありません
;https://yukicoder.me/problems/no/253
(let (
(numMin 10)
(numMax 1000000001)
)
(loop for turn from 0 do
(let ((chkNum (if(= 0 turn) 100 (floor(/(+ numMin numMax) 2)))))
(format t "? ~d~%" chkNum)(force-output)
(let ((chk (read-line)))
(if(string= "1" chk) (setf numMin chkNum)
(if(string= "-1" chk) (setf numMax chkNum)
(progn
(format t "! ~d~%" (+ chkNum turn))(force-output)
(return)
)))
(when(< 0 numMin) (decf numMin))
(decf numMax)
)
)
)
)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX