結果
| 問題 | No.3 ビットすごろく |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-11-11 11:09:08 |
| 言語 | Ruby (3.4.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 629 bytes |
| コンパイル時間 | 46 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 25,088 KB |
| 最終ジャッジ日時 | 2024-11-25 08:01:29 |
| 合計ジャッジ時間 | 102,315 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 19 TLE * 14 |
コンパイルメッセージ
Main.rb:34: warning: ambiguous first argument; put parentheses or a space even after `-' operator Syntax OK
ソースコード
N = gets.to_i
INF = 10000
@dp = Array.new(N+1, INF)
@dp[1] = 1
def binary_1_count(num)
count_1 = 0
while num > 1 do
count_1 += 1 if num % 2 == 1
num /= 2
end
count_1 += 1
end
# iと書かれたマスに@dp(i)回目で移動してきた
# @dpのこの位置は前もって書いてあるものとする
def move(i)
count = binary_1_count(i)
if i - count > 0 && @dp[i]+1 < @dp[i-count]
@dp[i-count] = @dp[i]+1
move(i-count)
end
if i + count <= N && @dp[i]+1 < @dp[i+count]
@dp[i+count] = @dp[i]+1
move(i+count)
end
end
move(1)
p @dp
if @dp[N] == INF
puts -1
else
puts @dp[N]
end