题目描述
输入描述
输出描述
输出共 Q 行,每行包含一个整数,表示相应查询的答案。
输入输出样例
示例 1
输入
5 5
1 2 3 4 5
2 1 2
1 2 3 1
2 1 3
1 1 5 1
2 1 5
输出
3
8
22
运行限制
语言 | 最大运行时间 | 最大运行内存 |
C++ | 2s | 512M |
C | 2s | 512M |
Java | 3s | 512M |
Python3 | 6s | 512M |
代码展示:
import os
import sys
# 请在此输入您的代码
n ,q = list(map(int, input().split()))
a = [int(i) for i in input().split()]
for i in range(q):
s=list(map(int, input().split()))
#执行加k操作
l = s[1]-1
r = s[2]-1
if s[0]==1:
k = s[3]
for j in range(l,r+1):
a[j] += k
else:
print(sum(a[l:r+1]))
需要注意的是:
给区间加k值的时候,这个题目描述的是从a1,……到an,而不是下标从零开始,这个是需要注意的。要是想直接想用l和r,这个时候就需要给l和r分别减1,;还有一种就是直接将下标为0的数赋值为0即可。