結果
問題 | No.3 ビットすごろく |
ユーザー | pocarist |
提出日時 | 2015-09-01 13:22:09 |
言語 | F# (F# 4.0) |
結果 |
AC
|
実行時間 | 1,562 ms / 5,000 ms |
コード長 | 921 bytes |
コンパイル時間 | 5,121 ms |
コンパイル使用メモリ | 166,808 KB |
実行使用メモリ | 66,776 KB |
最終ジャッジ日時 | 2023-09-13 23:21:47 |
合計ジャッジ時間 | 20,492 ms |
ジャッジサーバーID (参考情報) |
judge12 / judge15 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 83 ms
22,860 KB |
testcase_01 | AC | 82 ms
22,812 KB |
testcase_02 | AC | 83 ms
22,856 KB |
testcase_03 | AC | 86 ms
24,856 KB |
testcase_04 | AC | 82 ms
22,868 KB |
testcase_05 | AC | 112 ms
31,076 KB |
testcase_06 | AC | 87 ms
22,848 KB |
testcase_07 | AC | 84 ms
22,800 KB |
testcase_08 | AC | 94 ms
24,844 KB |
testcase_09 | AC | 264 ms
33,940 KB |
testcase_10 | AC | 599 ms
45,992 KB |
testcase_11 | AC | 195 ms
32,972 KB |
testcase_12 | AC | 110 ms
29,116 KB |
testcase_13 | AC | 87 ms
22,892 KB |
testcase_14 | AC | 512 ms
45,692 KB |
testcase_15 | AC | 1,328 ms
64,184 KB |
testcase_16 | AC | 728 ms
47,864 KB |
testcase_17 | AC | 1,163 ms
64,240 KB |
testcase_18 | AC | 85 ms
24,836 KB |
testcase_19 | AC | 1,536 ms
66,776 KB |
testcase_20 | AC | 83 ms
24,792 KB |
testcase_21 | AC | 82 ms
22,784 KB |
testcase_22 | AC | 537 ms
44,080 KB |
testcase_23 | AC | 1,557 ms
64,680 KB |
testcase_24 | AC | 1,562 ms
62,724 KB |
testcase_25 | AC | 1,312 ms
64,152 KB |
testcase_26 | AC | 84 ms
24,952 KB |
testcase_27 | AC | 85 ms
24,856 KB |
testcase_28 | AC | 689 ms
46,044 KB |
testcase_29 | AC | 201 ms
32,996 KB |
testcase_30 | AC | 84 ms
22,800 KB |
testcase_31 | AC | 83 ms
22,796 KB |
testcase_32 | AC | 151 ms
28,624 KB |
コンパイルメッセージ
Microsoft (R) F# Compiler version 11.0.0.0 for F# 5.0 Copyright (c) Microsoft Corporation. All Rights Reserved.
ソースコード
// http://yukicoder.me/problems/11 open System let dprintfn fmt = Printf.kprintf Diagnostics.Debug.WriteLine fmt let bitcount n = let rec loop bits num = if bits = 0 then num else loop (bits &&& (bits-1)) (num+1) loop n 0 let solve N = let visited = Array.init (N+1) (fun _ -> false) let queue = new System.Collections.Generic.Queue<int*int>() let rec bfs (q : System.Collections.Generic.Queue<int*int>) = if q.Count = 0 then -1 else let i, cnt = q.Dequeue() if i = N then cnt else visited.[i] <- true let n = bitcount i if i+n <= N && not visited.[i+n] then q.Enqueue(i+n, cnt+1) if i-n >= 1 && not visited.[i-n] then q.Enqueue(i-n, cnt+1) bfs q queue.Enqueue(1,1) bfs queue [<EntryPoint>] let main argv = let N = Console.ReadLine() |> int solve N |> printfn "%d" 0