0
已解决
汪恺恒
中级启示者
中级启示者
小萱萱参加了一个“寻宝”游戏:在一排均匀排列的树上,被随机放置了一个“宝贝”,看谁能以最少的时间找到这个“宝贝”。每一个寻宝的人开始会站在第N(0≤N≤100000)棵树边,假设树有100000 棵,“宝贝”被放在第K(0≤K≤100000)棵树上,寻宝人有两种移动办法:步行和跳跃。假如寻宝人现在在第X棵树边,步行每秒可以从第X棵树向第X-1棵和第X+1棵树走去,跳跃可以让她在1秒内从第X棵树直接跳到第2*X棵树边(假如他有超能力完成跳跃,跳跃过程中不能超过树的边界)。现在要求找到“宝贝”需要的最短时间。
输入描述 Input Description
仅有两个整数N和K。
输出描述 Output Description
最短时间
WA20
#include<iostream>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
int m=(k-n)/n,a=(k-n)%n,b=n-a;
int ans=m+min(a,b);
cout<<ans;
return 0;
}