25 lines
640 B
TypeScript
25 lines
640 B
TypeScript
export {};
|
|
|
|
const maxAxis = 100000;
|
|
const [N, K]: [number, number] = require("fs").readFileSync(0, "utf8").toString().trim().split(' ').map(Number);
|
|
let queue: number[] = [];
|
|
let visited: number[] = new Array(maxAxis+1).fill(0);
|
|
|
|
queue.push(N);
|
|
|
|
while(queue.length){
|
|
const now = queue.shift();
|
|
if(now === K){
|
|
console.log(visited[now]);
|
|
break;
|
|
}
|
|
|
|
const nextAxis: number[] = [now-1, now+1, 2*now];
|
|
for(let moveAxis of nextAxis){
|
|
if(0<=moveAxis && moveAxis<=maxAxis && visited[moveAxis]===0){
|
|
visited[moveAxis] = visited[now] + 1;
|
|
queue.push(moveAxis);
|
|
}
|
|
}
|
|
}
|