結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
monaka
|
| 提出日時 | 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"));
monaka