➤ Problem Link : ELEVTRBL
👉 Hint : Count number of levels using BFS
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; int main() { int x,f,s,g,u,d; cin>>f>>s>>g>>u>>d; if(s==g) { cout<<"0"; exit(0); } int visited[f+1],level[f+1]; memset(visited,0,sizeof(visited)); memset(level,0,sizeof(level)); queue<int>q; q.push(s); while(!q.empty()) { x=q.front(); q.pop(); visited[x]=1; if(x==g) break; if(x<g) { if(x+u<=f && !visited[x+u]) { level[x+u]=level[x]+1; q.push(x+u); } else if(x-d>=1 && !visited[x-d]) { level[x-d]=level[x]+1; q.push(x-d); } } else if(x-d>=1 && !visited[x-d]) { level[x-d]=level[x]+1; q.push(x-d); } else if(x+u<=f && !visited[x+u]) { level[x+u]=level[x]+1; q.push(x+u); } } if(level[g]!=0) cout<<level[g]<<endl; else cout<<"use the stairs"; }
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!!