假如Subtask #1”WA“了
查看原帖
假如Subtask #1”WA“了
1241185
yi105011楼主2024/8/5 14:46

试一下这个样例
输入 :
0 0
10
0
输出 :
10
错误输出 :0 或 -10
0 :因为访问到了a[n + 1]
-10:没加绝对值
代码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 100010;
int n , m , a[N] , b , ans ;
signed main () {
cin >> n >> m;
for (int i = 1;i <= n;i ++) {
cin >> a[i];
}sort (a + 1,a + n + 1);
for (int i = 1;i <= m;i ++) {
cin >> b;
int l = 1,r = n;
while (l < r) {
int mid = (l + r + 1) / 2;
if (a[mid] <= b) {
l = mid;
}else r = mid - 1;
}
//特判:防止越界
if (r == n)ans += abs(b - a[r]);
else ans += min (abs (b - a[r]) , abs (b - a[r + 1]));
}
cout << ans;
return 0;
}
2024/8/5 14:46
加载中...