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

vector<int> updateArray(vector<int>& arr, vector<vector<int>>& opr) {
    int n = arr.size();

    vector<int> diff(n + 1, 0);

    // Apply all range updates
    for (auto &op : opr) {
        int l = op[0];
        int r = op[1];
        int v = op[2];

        diff[l] += v;
        diff[r + 1] -= v;
    }

    // Prefix sum and update original array
    int running = 0;

    for (int i = 0; i < n; i++) {
        running += diff[i];
        arr[i] += running;
    }

    return arr;
}

int main() {
    vector<int> arr = {2, 3, 5, 6, 7};

    vector<vector<int>> opr = {
        {2, 4, 2},
        {3, 4, -1}
    };

    vector<int> ans = updateArray(arr, opr);

    cout << "Updated Array: ";

    for (int x : ans) {
        cout << x << " ";
    }

    cout << endl;

    return 0;
}