模拟模拟yyds,这真是一道大夶氵题!
有两种情况:
1. 直接从$a$到$b$,不借助传送门。
2. 从a到x,再x到y,最后y到b。
3. 从a到y,再y到x,最后x到b。
这三种情况对应:
1. $abs(a-b)$
2. abs(a-x) + abs(y-b)
3. abs(a-y) + abs(x-b)
当然众所周知,abs里面反一下也是可以的。
#include <bits/stdc++.h>
using namespace std;
int a, b, x, y;
int main() {
scanf("%d%d%d%d", &a, &b, &x, &y);
int d1 = abs(a - b), d2 = min(abs(a - x) + abs(b - y), abs(a - y) + abs(b - x));
printf("%d", min(d1, d2));
return 0;
}