; 現在の位置 N を覚えておき ; N = P なら N = Q ; N = Q なら N = P ; へ変更を行い続ける (defun main () (let* ((n (read)) (m (read))) ; dotimes 構文 ; m 回繰り返す (dotimes (_ m) (let ((p (read)) (q (read))) ; setq 変数に値を代入する ; setq var1 form1 var2 form2 ... とすると ; 一つの式で複数の変数に値を代入できる (cond ((= p n) (setq n q)) ((= q n) (setq n p)) ; それ以外の場合は t で表す (t)))) (princ n) ; 改行をストリームへ送る (terpri))) (main)