
- Solved.ac 기준 : 실버 1
- 사용언어 C++
문제 해석 및 풀이
- 여러 점들의 x와 y 좌표의 중앙값이 최단 이동거리 좌표가 됨
- 해당 좌표와 각 점들의 거리를 구한 값을 모두 더해주면 됨
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main() {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int n, m;
cin >> n >> m;
vector<int> arrX(m);
vector<int> arrY(m);
for (int i = 0; i < m; i++) {
cin >> arrX[i] >> arrY[i];
}
sort(arrX.begin(), arrX.end());
sort(arrY.begin(), arrY.end());
int midX = arrX[m / 2];
int midY = arrY[m / 2];
long long distance = 0;
for (int i = 0; i < m; i++) {
distance += abs(arrX[i] - midX) + abs(arrY[i] - midY);
}
cout << distance;
return 0;
}