https://www.luogu.com.cn/record/197784678
#include <bits/stdc++.h>
using namespace std;
namespace mynamespace
{
int a,b;
struct node
{
int v,d;
};
queue<node> q;
set<int> vis;
int bfs()
{
q.push({a,0});
while(!q.empty())
{
node now=q.front();
vis.insert(now.v);
q.pop();
if(now.v==b)
{
return now.d;
}
if(!vis.count(now.v*2)) q.push({now.v*2,now.d+1});
if(!vis.count(now.v+1)) q.push({now.v+1,now.d+1});
if(!vis.count(now.v-1)) q.push({now.v-1,now.d+1});
}
}
int main()
{
cin>>a>>b;
cout<<bfs();
return 0;
}
}
int main()
{
return mynamespace::main();
}