P9851 题解(2023 激励计划评分 7)

· · 题解

分析

显然地,我们先假设我们首先移动到了一个宝箱,另一个宝箱还没有被收集,那么移动到另一个宝箱所需要移动的次数就是两个宝箱之间的距离,即 |a-b|

那我们只需要先移动到离自己近的宝箱,然后再移动到另一个宝箱即可,所以答案为 \min(|a|,|b|)+|a-b|

当然本题也可以根据两个宝箱在同侧还是异侧分类,直接计算答案即可。

Code

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    cout<<min(abs(a),abs(b))+abs(a-b);
    return 0;
}