結果
| 問題 |
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"));
monaka