結果
| 問題 | No.3 ビットすごろく |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-11-01 10:16:23 |
| 言語 | JavaScript(Node) (node v26.12.1 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 59 ms / 5,000 ms |
| + 254µs | |
| コード長 | 720 bytes |
| 記録 | |
| コンパイル時間 | 23 ms |
| コンパイル使用メモリ | 9,700 KB |
| 実行使用メモリ | 63,752 KB |
| 最終ジャッジ日時 | 2026-11-01 10:16:29 |
| 合計ジャッジ時間 | 6,234 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
import fs from 'node:fs'
function main(input) {
const n = parseInt(input)
var a = new Array(n + 1)
var q = [{ dest: 1, walk: 1 }]
for (var i = 0; i <= n; ++i)
a[i] = n + 1
while (q.length > 0) {
var qi = q.shift()
var curr = qi['dest']
var walk = qi['walk']
if (a[curr] <= walk)
continue
a[curr] = walk
var b = curr.toString(2).split('').filter(c => c == '1').length
if (curr - b >= 1)
q.push({ dest: curr - b, walk: walk + 1 })
if (curr + b <= n)
q.push({ dest: curr + b, walk: walk + 1 })
}
console.log(a[n] == n + 1 ? -1 : a[n])
}
main(fs.readFileSync('/dev/stdin', 'utf8'))