rt,本地跑没有问题,数组开到1e6也没有越界的可能 而且也处理了a-1时的越界问题
//2023/4/9
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
int num,ans;
bool vis[MAXN];
queue<int> que;
int bfs(int n,int k)
{
int min=0;
vis[n]=1;
que.push(n);
while(!que.empty())
{
int cur=que.size();
min++;
while(cur--)
{
int a=que.front();
que.pop();
if(a==k)
{
return min-1;
}
if(vis[2*a]==0)
{
que.push(2*a);
vis[2*a]=1;
}
if(vis[a+1]==0)
{
que.push(a+1);
vis[a+1]=1;
}
if(vis[a-1]==0&&a>=1)
{
que.push(a-1);
vis[a-1]=1;
}
}
}
return 1;
}
int main()
{
int n,k;
cin>>n>>k;
cout<<bfs(n,k)<<endl;
return 0;
}