题目B 修改数组 题目描述 给出一个长度为 N 的序列。每次操作你可以将序列中的任意数字加上1或者减去1。 你需要回答 Q 个问题。每个问题为: 你最少需要做多少次操作来将序列中的每个元素修改```c #include<bits/stdc++.h> using namespace std;
int main(){ int n, q; cin >> n >> q; int a[n]; for(int i = 0; i < n; i++){ cin >> a[i]; }
sort(a, a+n); // 对数组进行排序
// 执行查询
for(int i = 0; i < q; i++){
int x;
cin >> x;
// 在排序后的数组中寻找第一个大于等于 x 的位置
int pos = lower_bound(a, a+n, x) - a;
// 计算结果
int ans = 0;
if(pos < n){
int sum = 0;
for(int j = pos; j < n; j++){
sum += a[j];
}
ans = sum - x * (n - pos);
}
cout << ans << endl;
}
return 0;
}