# 题目描述
# 给定一个长度为 n 的初始全零数组,执行 m 次区间操作:
# 每次操作输入 l, r, k,表示将数组中第 l 到第 r 个位置(包含 l 和 r)的所有数都加上 k。
# 操作完成后,输出数组中所有元素的总和。
# 输入格式:第一行输入两个整数 n, m (1 ≤ n, m ≤ 10^5)接下来 m 行,每行输入三个整数 l, r, k (1 ≤ l ≤ r ≤ n, 1 ≤ k ≤ 10^9)
# 输出格式:输出一个整数,表示操作完成后数组的总和。
n,m=map(int,(input().split()))
diff_arr=[0]*(n+2)
rel=[0]*(n+1)
for i in range(m):
L,R,k=map(int,input().split())
diff_arr[L]=diff_arr[L]+k
if R+1<=n:
diff_arr[R+1]=diff_arr[R+1]-k
sum=0
current=0
for i in range(1,n+1):
current+=diff_arr[i]
sum=sum+current
print(sum)
蓝桥杯b组真题改编 差分数组求和
春晖饶阳2026-01-25 13:32