주어진 정수가 4개 뿐이기 때문에 모든 가능한 조합을 따져봐도 문제를 해결할 수 있겠지만, 최장 맨해튼 거리는 서로 가장 멀리 떨어진 두 좌표에서 찾아지는 값이기 때문에 가장 작은 값을 가지는 좌표와 가장 큰 값을 가지는 좌표를 바로 구해서 문제를 해결해 주었다.

 

가령, 주어진 예시 -1 -3 5 -10 에서

오름차순으로 정렬해 준 뒤 (-10 -3 -1 5)

가장 작은 값을 가지는 좌표 a = (-10, -3) 

가장 큰 값을 가지는 좌표 b = (-1, 5)

두 좌표 a, b를 구하여 최장 맨해튼 거리를 구해 주면 쉽게 해결할 수 있다.

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;


int main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	int x1, y1, x2, y2;
	vector<int> input(4);
	for (int i = 0; i < 4; i++) cin >> input[i];
	sort(input.begin(), input.end());
	x1 = input[0], y1 = input[1];
	x2 = input[2], y2 = input[3];
	cout << abs(x1 - x2) + abs(y1 - y2);
	return 0;
}