結果
| 問題 | No.3 ビットすごろく |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-03-12 08:34:52 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 102 ms / 5,000 ms |
| コード長 | 576 bytes |
| コンパイル時間 | 128 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 12,416 KB |
| 最終ジャッジ日時 | 2024-07-01 08:35:49 |
| 合計ジャッジ時間 | 4,395 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
コンパイルメッセージ
Syntax OK
ソースコード
def bit_count(n)
res = 0;
while n > 0
n &= n-1
res += 1
end
return res
end
def main
n = gets.to_i
dp = Array.new(10001, 0)
dp[1] = 1
queue = [1]
while !queue.empty?
new_queue = []
queue.each do |q|
return dp[q] if q == n
step_count = bit_count(q)
[1, -1].each do |i|
next_pos = q + i * step_count
if 0 < next_pos && next_pos <= n && dp[next_pos] == 0
dp[next_pos] = dp[q] + 1
new_queue << next_pos
end
end
end
queue = new_queue
end
return -1
end
puts main()