結果

問題 No.3 ビットすごろく
ユーザー n_get
提出日時 2021-08-13 14:45:14
言語 Scheme
(Gauche-0.9.15)
結果
AC  
実行時間 30 ms / 5,000 ms
コード長 662 bytes
コンパイル時間 179 ms
コンパイル使用メモリ 6,948 KB
実行使用メモリ 16,512 KB
最終ジャッジ日時 2024-10-03 05:04:48
合計ジャッジ時間 2,181 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

(use util.queue)
(define N (read))
(define v (make-vector (+ N 1) #f))

(let ([que (make-queue)])
  (enqueue! que 1)
  (vector-set! v 1 1)
  (let loop ()
    (cond
     [(queue-empty? que) (print (if (vector-ref v N) (vector-ref v N) -1))]
     [else
      (let* ([i (dequeue! que)]
             [c (logcount i)])
        (cond
         [(and (<= (+ i c) N) (not (vector-ref v (+ i c))))
          (vector-set! v (+ i c) (+ 1 (vector-ref v i)))
          (enqueue! que (+ i c))])
        (cond
         [(and (> (- i c) 0) (not (vector-ref v (- i c))))
          (vector-set! v (- i c) (+ 1 (vector-ref v i)))
          (enqueue! que (- i c))]))
      (loop)])))
0