题解 | #【模板】差分#

【模板】差分

https://www.nowcoder.com/practice/4bbc401a5df140309edd6f14debdba42

#include <stdio.h>
#define MAX_N 101010
#define ll long long
ll a[MAX_N];
ll dp[MAX_N];

int main() {
    int n, m, i;
    scanf("%d%d", &n, &m);
    for (i = 1; i <= n; i++) {
        scanf("%lld", &a[i]);
    }
    for (i = 1; i <= m; i++) {
        int l, r, x;
        scanf("%d%d%d", &l, &r, &x);
        dp[l] += x;
        if (r + 1 <= n) {
            dp[r + 1] -= x;
        }
    }
    for (i = 1; i <= n; i++) {
        dp[i] += dp[i - 1];
    }
    for (i = 1; i <= n; i++) {
        printf("%lld ", a[i] + dp[i]);
    }
    return 0;
}

全部评论

相关推荐

10-03 17:08
已编辑
西安电子科技大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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