結果

問題 No.3 ビットすごろく
ユーザー monakamonaka
提出日時 2022-01-03 14:21:23
言語 TypeScript
(5.4.3)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 713 bytes
コンパイル時間 3,769 ms
コンパイル使用メモリ 145,812 KB
最終ジャッジ日時 2024-04-27 05:09:32
合計ジャッジ時間 4,190 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.ts(32,6): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.

ソースコード

diff #

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"));
0