AcWing 797. 差分(Java版本)
原题链接
简单
作者:
恒心
,
2021-01-24 19:10:59
,
所有人可见
,
阅读 240
import java.io.*;
import java.util.*;
class Main{
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
sc.nextLine();
int[] nums = new int[n];
int[] b = new int[n];
String[] numChar = sc.nextLine().split(" ");
for(int i = 0; i < n; ++i){
nums[i] = Integer.parseInt(numChar[i]);
b[i] = i == 0 ? nums[i] : (nums[i] - nums[i - 1]);
}
while(m > 0){
int L = sc.nextInt();
int R = sc.nextInt();
int C = sc.nextInt();
insert(b, L - 1, R - 1, C);
m--;
}
for(int i = 0; i < n; ++i){
nums[i] = (i == 0) ? b[i] : b[i] + nums[i - 1];
}
for(int i : nums){
System.out.print(i + " ");
}
}
public static void insert(int[] nums, int L, int R, int C){
nums[L] += C;
if(R != nums.length - 1){
nums[R + 1] -= C;
}
}
}