【題解】ZeroJudge a737: 10041 – Vito’s family

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=a737
【解題想法】

  • 題目要問 Vito 的新家到所有的親戚的家的距離的和為最小為多少?
  • 把所有的親戚的家的門牌號碼排序後,中位數即為Vito 新家的門牌號碼。
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int T, r;
    cin >> T;
    while (T--) {
        cin >> r;
        int s[r];
        for (int i = 0; i < r; i++){
            cin >> s[i];
        }
        sort(s, s+r);
        int sum = 0;
        for (int i = 0; i < r; i++){
            sum += abs(s[i] - s[r/2]);
        }
        cout << sum << "\n";
    }
    return 0;
}
分享本文 Share with friends