#include <iostream> #include <algorithm> #include <cmath> #include <climits> using namespace std; const int MAX_M = 100000; const int MAX_N = 100000; int main() { int m, n; // 读取学校数量 m 和学生数量 n cin >> m >> n; int schools[MAX_M]; // 读取 m 个学校的预计录取分数 for (int i = 0; i < m; i++) { cin >> schools[i]; } // 对学校分数线进行排序 sort(schools, schools + m); int students[MAX_N]; // 读取 n 个学生的估分成绩 for (int i = 0; i < n; i++) { cin >> students[i]; } long long totalDissatisfaction = 0; // 遍历每个学生的估分 for (int i = 0; i < n; i++) { int minDiff = INT_MAX; // 遍历所有学校的分数线,找到最接近的分数线 for (int j = 0; j < m; j++) { int diff = abs(students[i] - schools[j]); if (diff < minDiff) { minDiff = diff; } } // 累加该学生的不满意度 totalDissatisfaction += minDiff; } // 输出最小的不满意度总和 cout << totalDissatisfaction << endl; return 0; } /************************************************************** Problem: 1899 User: chenjingqi Language: C++ Result: Time Limit Exceed ****************************************************************/