AcWing 797. 差分
原题链接
简单
作者:
Phil.
,
2023-12-11 21:21:29
,
所有人可见
,
阅读 35
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] a = new int[n + 10]; // 序列
int[] b = new int[n + 10]; // 差分数组
for (int i = 1 ; i <= n ; i ++){
a[i] = sc.nextInt();
insert(b,i,i,a[i]);
}
for(int i = 0; i < m ; i ++){
int l = sc.nextInt();
int r = sc.nextInt();
int c = sc.nextInt();
insert(b,l,r,c);
}
for(int i = 1 ; i <= n ; i ++){
a[i] = a[i-1] + b[i];
System.out.printf("%d ",a[i]);
}
}
public static void insert(int[] b, int l , int r , int c){
b[l] += c;
b[r + 1] -= c;
}
}