提交时间:2025-10-24 15:09:57
运行 ID: 71137
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int main() { int N, M; cin >> N >> M; int N1, M1, N2, M2; cin >> N1 >> M1; cin >> N2 >> M2; // 计算不使用传送门的曼哈顿距离 int direct_distance = (N - 1) + (M - 1); // 计算使用传送门的两种路径 // 路径1:起点 -> 传送门1 -> 传送门2 -> 终点 int path1 = abs(N1 - 1) + abs(M1 - 1) + abs(N - N2) + abs(M - M2); // 路径2:起点 -> 传送门2 -> 传送门1 -> 终点 int path2 = abs(N2 - 1) + abs(M2 - 1) + abs(N - N1) + abs(M - M1); // 取三种路径中的最小值 int result = min(direct_distance, min(path1, path2)); cout << result << endl; return 0; }