6

Untitled

public
6shootingstar9 Mar 29, 2025 Never 7
Clone
Plaintext paste1.txt 54 lines (54 loc) | 716 Bytes
1
#include<bits/stdc++.h>
2
using namespace std;
3
const int N=100010;
4
int vis[N];
5
int a,b;
6
int ans=INT_MAX;
7
void dfs(int x,int step)
8
{
9
// cout<<x<<endl;
10
if(step>=ans)
11
{
12
return;
13
}
14
if(x>b)
15
{
16
ans=min(ans,step+x-b);
17
return;
18
}
19
if(x==b)
20
{
21
ans=max(ans,step);
22
return;
23
}
24
if(vis[x+1]==0&&x+1<=100000)
25
{
26
vis[x+1]=1;
27
dfs(x+1,step+1);
28
vis[x+1]=0;
29
}
30
if(vis[x-1]==0&&x-1>=0)
31
{
32
vis[x-1]=1;
33
dfs(x-1,step+1);
34
vis[x-1]=0;
35
}
36
if(vis[x*2]==0&&x*2<=100000)
37
{
38
vis[x*2]=1;
39
dfs(x*2,step+1);
40
vis[x*2]=0;
41
}
42
}
43
int main()
44
{
45
cin>>a>>b;
46
dfs(a,0);
47
if(a==b)
48
{
49
cout<<0;
50
return 0;
51
}
52
cout<<ans;
53
return 0;
54
}