#include <iostream>
#include <queue>
using namespace std;
struct point{
int num, step;
};
int n, begin_, end_;
int visit[5001];
queue <point> searchlist;
int search(){
point cur;
cur.num = begin_;
cur.step = 0;
searchlist.push(cur);
while(searchlist.empty() == false){
cur = searchlist.front();
searchlist.pop();
if(cur.num == end_){
return cur.step;
}
if(visit[cur.num]){
continue;
}
visit[cur.num] = 1;
searchlist.push({cur.num + 1, cur.step + 1});
searchlist.push({cur.num - 1, cur.step + 1});
searchlist.push({cur.num * 2, cur.step + 1});
searchlist.push({cur.num / 2, cur.step + 1});
}
return -1;
}
int main(){
cin >> n >> begin_ >> end_;
cout << search() << '\n';
}
问题:re
分数:67
帮帮忙