求帮改代码
  • 板块灌水区
  • 楼主lanxuanyue666
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/29 13:12
  • 上次更新2024/4/29 17:54:02
查看原帖
求帮改代码
1064530
lanxuanyue666楼主2024/4/29 13:12

题目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;

}

2024/4/29 13:12
加载中...