编辑代码

#include <iostream>
#include <vector>
#include <algorithm>
#define int long long 
using namespace std;

signed main() {
    ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
    int n, k;
    cin >> n >> k;
    vector<int> nums(n);
    for(int i = 0; i < n; ++i) {
        cin >> nums[i];
    }
    for(int i = 0; i < k; ++i) {
        int idx = min_element(nums.begin(), nums.end()) - nums.begin(); // 找到最小值的下标
        if(idx > 0) { // 如果不是第一个元素就将前一个元素加上被删除的数值
            nums[idx-1] += nums[idx];
        }
        if(idx < n-1) { // 如果不是最后一个元素就将后一个元素加上被删除的数值
            nums[idx+1] += nums[idx];
        }
        nums.erase(nums.begin()+idx); // 删除最小值
    }
    for(int i = 0; i < n-k; ++i) { // 输出 K 次操作后的序列
        cout << nums[i] << " ";
    }
    return 0;
}