結果
問題 | No.3 ビットすごろく |
ユーザー | monaka |
提出日時 | 2022-01-03 13:47:10 |
言語 | TypeScript (5.7.2) |
結果 |
AC
|
実行時間 | 1,642 ms / 5,000 ms |
コード長 | 664 bytes |
コンパイル時間 | 8,214 ms |
コンパイル使用メモリ | 229,788 KB |
実行使用メモリ | 45,548 KB |
最終ジャッジ日時 | 2024-12-31 16:43:10 |
合計ジャッジ時間 | 25,879 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
function main(input) { const n = parseInt(input[0]); const minStep = []; walk(1, n, minStep, 1); if(minStep[n]) { console.log(minStep[n]); } else { console.log(-1); } } function walk(now, n, minStep, step) { if(now < 1 || now > n) return; if(!minStep[now]) minStep[now] = step; if(minStep[now] < step) return; minStep[now] = step; const num = countOneBit(now); walk(now+num, n, minStep, step+1); walk(now-num, n, minStep, step+1); } function countOneBit(i) { let count = 0; while(i > 0) { if((i & 1) === 1) count++; i >>= 1; } return count; } main(require("fs").readFileSync("/dev/stdin", "utf8").split("\n"));