結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-09-04 01:32:31 |
| 言語 | Scheme (Gauche-0.9.15) |
| 結果 |
AC
|
| 実行時間 | 33 ms / 5,000 ms |
| コード長 | 680 bytes |
| コンパイル時間 | 33 ms |
| コンパイル使用メモリ | 6,944 KB |
| 実行使用メモリ | 16,512 KB |
| 最終ジャッジ日時 | 2024-07-01 09:30:08 |
| 合計ジャッジ時間 | 1,894 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
(use data.queue)
(define (read-number)
(string->number (read-line)))
(let ((n (read-number)))
(define vec (make-vector (+ n 1) -1))
(vector-set! vec 1 1)
(let loop ((q (list->queue '(1))))
(cond ((> (queue-length q) 0)
(let* ((top (dequeue! q))
(right (+ top (logcount top)))
(left (- top (logcount top))))
(cond ((and (<= right n)
(= (vector-ref vec right) -1))
(vector-set! vec right (+ (vector-ref vec top) 1))
(enqueue! q right)))
(cond ((and (<= 1 left)
(= (vector-ref vec left) -1))
(vector-set! vec left (+ (vector-ref vec top) 1))
(enqueue! q left)))
(loop q)))))
(print (vector-ref vec n)))