fork(1) download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long int f,s,g,u,d;
  6. long long int level[10000001];
  7.  
  8. void bfs()
  9. {
  10. queue<long long int> q;
  11. q.push(s);
  12. while(!q.empty())
  13. {
  14. int curr = q.front();
  15. q.pop();
  16. //cout<<"curr level"<<curr<<" "<<level[curr]<<endl;
  17. if(curr == g)
  18. return ;
  19. if(curr + u <= f && !level[curr +u])
  20. {
  21. level[curr + u] = 1 + level[curr];
  22. q.push(curr + u);
  23. }
  24. if(curr - d >= 1 && !level[curr-d])
  25. {
  26. level[curr - d] = 1 + level[curr];
  27. q.push(curr - d);
  28. }
  29. }
  30. }
  31.  
  32. int main()
  33. {
  34. cin>>f>>s>>g>>u>>d;
  35. for(int i=1;i<=f;++i)
  36. level[i] = 0;
  37. bfs();
  38. (level[g] || (s==g))? cout<<level[g] : cout<<"use the stairs";
  39. return 0;
  40. }
Success #stdin #stdout 0s 4292KB
stdin
10 1 10 2 1
stdout
6