結果
問題 |
No.3 ビットすごろく
|
ユーザー |
![]() |
提出日時 | 2022-01-03 14:21:23 |
言語 | TypeScript (5.7.2) |
結果 |
AC
|
実行時間 | 79 ms / 5,000 ms |
コード長 | 713 bytes |
コンパイル時間 | 8,344 ms |
コンパイル使用メモリ | 228,644 KB |
実行使用メモリ | 45,056 KB |
最終ジャッジ日時 | 2024-12-31 16:43:21 |
合計ジャッジ時間 | 11,944 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
function main(input) { const n = parseInt(input[0]); const minStep = []; const q = [{floor:1, step:1}]; while(q.length > 0) { const {floor, step} = q.shift(); if(floor < 1 || floor > n) continue; if(minStep[floor] <= step) continue; minStep[floor] = step; const oneBit = countOneBit(floor); q.push({floor:(floor+oneBit), step:(step+1)}); q.push({floor:(floor-oneBit), step:(step+1)}); } if(minStep[n]) { console.log(minStep[n]); } else { console.log(-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"));