1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int main(){ int n; // 存储学生人数 cin >> n; // [1] 输入学生人数n int arr[n], arr1[n]; // [2] arr存储男生身高,arr1存储女生身高 // [3] 输入n个男生的身高 for(int i = 0; i < n; i++) cin >> arr[i]; // [4] 输入n个女生的身高 for(int i = 0; i < n; i++) cin >> arr1[i]; sort(arr, arr + n); // [5] 男生身高数组升序排序 sort(arr1, arr1 + n); // [6] 女生身高数组升序排序 int sum = 0; // [7] 初始化身高差之和为0 // [8] 贪心策略:最小男生配最大女生,次小配次大,最大化每组身高差 for(int i = 0; i < n; i++){ if(arr[i] <= arr1[n - i - 1]){ sum += arr1[n - i - 1] - arr[i]; // 累加当前组身高差 }else{ sum += arr[i] - arr1[n - i - 1]; // 累加当前组身高差 } } cout << sum; // [9] 输出所有组身高差之和的最大值 return 0; }
- 1
信息
- ID
- 1029
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 4
- 已通过
- 2
- 上传者