1. A – When?
Dateオブジェクトのようなものがあるかわからなかったので、雑にコンスセルで実装しました。
100までだから答えられますが、もっと数字が多いとダメですね。
(defun solve (k)
(cons (+ 21 (floor k 60)) (mod k 60)))
(defun write-time (pair)
(format t "~2,'0d:~2,'0d" (car pair) (cdr pair)))
(defun main ()
(let ((k (read)))
(write-time (solve k))))
#-swank(main)Code language: PHP (php)

2. B – Balloon Trip
これは、切り捨ての割り算と未満の条件を比較すれば、すぐに解けました。
(defun main ()
(let* ((W (read))
(B (read)))
(princ (balloon-trip W B))))
(defun balloon-trip (W B)
(let* ((Wg (* 1000 W))
(n (floor Wg B)))
(cond ((< Wg (* n B)) n)
(t (1+ n)))))
#-swank(main)
Code language: CSS (css)

3. C – Grid Rotation
まず、文字列からグリッドを作ります。
. -> 0 # -> 1 に対応させた二次元配列にします。
(defun make-grid (N Sn)
(let ((grid (make-array (list N N)
:element-type 'bit
:initial-element 0)))
(loop for line in Sn
for row below N
do (loop for ch across line
for col below N
when (eql ch #\#)
do (setf (aref grid row col) 1))
finally (return grid)) ))Code language: Lisp (lisp)
2つのグリッドの違いをそのままカウントします。
(defun difference-of-grids (N G1 G2)
(loop for row below N
summing (loop for col below N
count (/= (aref G1 row col)
(aref G2 row col)))))Code language: Lisp (lisp)
グリッドを右に90度反転させます。
図で書いて確認すると (row, col) <- (N-col-1, row) に対応していました。
(defun rotate-right-grids (N grid)
(let ((result (make-array (list N N)
:element-type 'bit
:initial-element 0)))
(loop for row below N
do (loop for col below N
do (setf (aref result row col)
(aref grid (- N col 1) row)))
finally (return result))))Code language: Lisp (lisp)
最後は、最小の操作回数ですが、これはもっとも差が小さい回転を選んでから、あとは差の分を変換するので、3回転して、最小のケースを求めます。
このときに、回転もカウントされるので、その分は足しています。
(defun best-rotation (N G1 G2)
(loop for r from 1 to 3
with result = (difference-of-grids N G1 G2)
with Gx = (rotate-right-grids N G1)
do (progn
(setf result
(min (+ r (difference-of-grids N Gx G2))
result))
(setf Gx (rotate-right-grids N Gx)))
finally (return result)))
(defun main ()
(let* ((N (read))
(Sn (loop repeat N collect (read-line)))
(Tn (loop repeat N collect (read-line)))
(G1 (make-grid N Sn))
(G2 (make-grid N Tn))
)
(princ (best-rotation N G1 G2))))
#-swank(main)
Code language: Lisp (lisp)

Cは、時間切れでした。
Aで時間を使い過ぎましたね。
