結果

問題 No.3 ビットすごろく
ユーザー toshiro_yanagitoshiro_yanagi
提出日時 2019-01-04 17:34:38
言語 Nim
(2.0.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 713 bytes
コンパイル時間 785 ms
コンパイル使用メモリ 66,212 KB
最終ジャッジ日時 2024-04-27 02:45:52
合計ジャッジ時間 1,176 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 25) Error: cannot open file: queues

ソースコード

diff #

import sugar, strutils, queues


let
    n = parseInt readLine stdin

var
    moveCnt = lc[-1 | (i <- 0..<n), int]


proc calcBit(a: int): int =
    var x = a
    while x != 0:
        result += x mod 2
        x = x div 2


proc bfs: int =
    var Q = initQueue[tuple[place, cnt: int]]()
    enqueue Q, (1, 1)
    moveCnt[0] = 1

    while Q.len != 0:
        let q = dequeue Q

        for i in [-1, 1]:
            let q2Place = q.place + calcBit(q.place) * i
            let j = q2Place - 1
            if j in 0..<n and moveCnt[j] < 0:
                moveCnt[j] = q.cnt + 1
                enqueue Q, (q2Place, q.cnt + 1)

    moveCnt[n - 1]


proc main: void =
    echo bfs()


if isMainModule:
    main()
0