差分模板 区间加减

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
int nums[N];
int dif[N];

int main() {
   
#ifndef ONLINE_JUDGE
    freopen("D:/VS CODE/C++/in.txt", "r", stdin);
    freopen("D:/VS CODE/C++/out.txt", "w", stdout);
#endif
    int n, m;
    cin >> n >> m;

    for (int i = 1; i <= n; ++i) {
   
        cin >> nums[i];
    }
    for (int i = 1; i <= n; ++i) {
   
        dif[i] = nums[i] - nums[i - 1];
    }

    while (m--) {
   
        int l, r, c;
        cin >> l >> r >> c;
        dif[l] += c;
        dif[r + 1] -= c;
    }
    bool flag = false;
    for(int i = 1; i <= n; ++i) {
   
        nums[i] = nums[i - 1] + dif[i];
        printf(flag ? " %d" : "%d", nums[i]);
        flag = true;
    }
    
    fclose(stdin);
    fclose(stdout);
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:10
直接上图
牛客13578115...:改得一般,不值80
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
好想摆:一想到我苦苦追求的迪子私下里却是985的马子,我的心就在滴血😭😭😭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务