➤ Problem Link : 520B. Two Buttons
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int unordered_set<int> us; int bfs(int n, int m) { int cnt=0; queue<int> q; q.push(n); us.insert(n); while(!q.empty()) { int s=q.size(); while(s--) { int v=q.front(); if(v==m) return cnt; q.pop(); if(v*2<=100000 && us.find(v*2)==us.end()) { us.insert(v*2); q.push(v*2); } if(v-1>0 && us.find(v-1)==us.end()) { us.insert(v-1); q.push(v-1); } } cnt++; } } int main() { int n,m; cin>>n>>m; cout<<bfs(n,m); }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!