797. 差分

輸入一個長度爲n的整數序列。html

接下來輸入m個操做,每一個操做包含三個整數l, r, c,表示將序列中[l, r]之間的每一個數加上c。ios

請你輸出進行完全部操做後的序列。atom

輸入格式

第一行包含兩個整數n和m。spa

第二行包含n個整數,表示整數序列。code

接下來m行,每行包含三個整數l,r,c,表示一個操做。xml

輸出格式

共一行,包含n個整數,表示最終序列。htm

數據範圍

1n,m1000001≤n,m≤100000,
1lrn1≤l≤r≤n,
1000c1000−1000≤c≤1000,
10001000−1000≤整數序列中元素的值≤1000
blog

輸入樣例:

6 3
1 2 2 1 2 1
1 3 1
3 5 1
1 6 1

輸出樣例:



3 4 5 3 4 2
#include<iostream>

using namespace std;

const int N = 1e5 + 10;

int a[N],b[N];
int n,m;
void insert(int l,int r,int c){
    b[l] += c;
    b[r + 1] -= c;
}


int main(){
    cin >> n >> m;
    for(int i = 1;i <= n;i++){
         cin >> a[i];
insert(i,i,a[i]);
    } 
   
    
    while(m --){
        int l,r,c;
        cin >> l >> r >> c;
        insert(l,r,c);
    }
    
    for(int i = 1;i <= n;i++){
        b[i] += b[i - 1];
     cout << b[i] << " ";
    } 
}
相關文章
相關標籤/搜索