結果
| 問題 | No.3 ビットすごろく | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2019-09-04 01:31:25 | 
| 言語 | Scheme (Gauche-0.9.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 29 ms / 5,000 ms | 
| コード長 | 699 bytes | 
| コンパイル時間 | 37 ms | 
| コンパイル使用メモリ | 6,816 KB | 
| 実行使用メモリ | 16,640 KB | 
| 最終ジャッジ日時 | 2024-07-01 09:30:06 | 
| 合計ジャッジ時間 | 1,890 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))
  (define q (make-queue))
  (vector-set! vec 1 1)
  (enqueue! q 1)
  (let loop ()
    (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)))))
  (print (vector-ref vec n)))
            
            
            
        