1 条题解
-
2
#include <bits/stdc++.h> const int MAXM = 1e5+2; int a[MAXM];//学校分数 const int MAXN = 1e5+2; int b[MAXM];//学生分数 int main() { int n, m; scanf("%d%d", &m, &n); int i; //读入学校分数 for (i=0; i<m; i++) { scanf("%d", &a[i]); } //读入学生分数 for (i=0; i<n; i++) { scanf("%d", &b[i]); } std::sort(a, a+m);//排序 //统计 unsigned long long ans = 0; for (i=0; i<n; i++) { int lo = std::lower_bound(a, a+m, b[i]) - a; int hi = std::upper_bound(a, a+m, b[i]) - a; if (lo==hi) { //b[i]没有在a[i]中,找最小的 if (0==lo) { ans += (a[lo]-b[i]); } else if (hi>=m) { ans += (b[i]-a[hi-1]); } else { ans += std::min(b[i]-a[lo-1], a[hi]-b[i]); } } } printf("%llu\n", ans); return 0; }//chuziming
信息
- ID
- 2047
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 154
- 已通过
- 32
- 上传者