原题解链接:https://ac.nowcoder.com/discuss/153563

找规律。

首先考虑斜着走,每走一步都会使横坐标和纵坐标的距离减11,可以持续这个操作使得两个点处在同一水平或者竖直的线上。此时每斜着走两步会使距离减22

所以如果它们的距离为偶数,那么可以按照两步两步的走过去,否则先到达终点旁边的格子,再花费一次上下左右走的次数,到达终点。

复杂度O(1)O(1)


#include<iostream>
#include<algorithm> 
using namespace std;
int main() {
	long long n, a, b, c, d;
	cin >> n >> a >> b >> c >> d;
	cout << max(abs(c - a), abs(d - b));
	return 0;
}