题目
思路
- 如下图所示
using namespace std;
const int N = 1e5 + 5;
int main() { int n, m; scanf(“%d %d”, &n, &m); int nums[N]; int diff[N]; for (int i = 0; i < n; ++i) { scanf(“%d”, &nums[i]); }
for(int i = 1; i < n; ++i) {
diff[i] = nums[i] - nums[i - 1];
}
diff[0] = nums[0];
while (m--) {
int l, r, c;
scanf("%d %d %d", &l, &r, &c);
// 题目中计数从1开始,我从0开始
l--;
r--;
diff[l] += c;
diff[r + 1] -= c;
}
for (int i = 0; i < n; i++) {
nums[i] = diff[i] + nums[i - 1];
printf("%d ", nums[i]);
}
return 0;
} ```