結果
問題 |
No.3 ビットすごろく
|
ユーザー |
|
提出日時 | 2016-11-11 11:11:46 |
言語 | Ruby (3.4.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 624 bytes |
コンパイル時間 | 66 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 25,344 KB |
最終ジャッジ日時 | 2024-11-25 08:03:52 |
合計ジャッジ時間 | 102,651 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 TLE * 14 |
コンパイルメッセージ
Main.rb:33: 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) if @dp[N] == INF puts -1 else puts @dp[N] end