提交时间:2026-01-04 15:16:19

运行 ID: 80416

#include <iostream> #include <algorithm> using namespace std; int main() { int N, M, N1, M1, N2, M2; cin >> N >> M >> N1 >> M1 >> N2 >> M2; // 计算从起点(1,1)到终点(N,M)的曼哈顿距离 int direct_distance = (N - 1) + (M - 1); // 计算通过门1到门2的路径距离 // 起点到门1 + 穿越(0步) + 门2到终点 int path1 = abs(N1 - 1) + abs(M1 - 1) + 0 + abs(N2 - N) + abs(M2 - M); // 计算通过门2到门1的路径距离 // 起点到门2 + 穿越(0步) + 门1到终点 int path2 = abs(N2 - 1) + abs(M2 - 1) + 0 + abs(N1 - N) + abs(M1 - M); // 取三种路径中的最小值 int min_distance = min({direct_distance, path1, path2}); cout << min_distance << endl; return 0; }