题目描述
输入 NNN 个整数的数组 AAA,然后有 MMM 个询问。每个询问给 222 个整数 aaa 和 bbb,问数组的第 aaa 个到第 bbb 个的和是多少?
输入格式
第一行2个正整数:NNN 和 MMM,N,MN,MN,M的范围在 [1,100000][1,100000][1,100000]。
第二行N个正整数:范围在 [1,100][1,100][1,100]。
下面有M行,每行 222 个整数 aaa 和 bbb,a,ba,ba,b的范围在 [1,N][1,N][1,N]。
输出格式
MMM 个整数,每个数一行,对应 MMM 个询问。
输入样例
5 2
3 6 2 7 9
1 3
4 3
输出样例
11
9
代码
#include<bits/stdc++.h>
using namespace std;
int n, s[300000], d = -1, d1, a, b, m, t;
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> t;
s[i] = t + s[i - 1];
}
for (int i = 1; i <= m; i++) {
cin >> a >> b;
if (a > b) {
swap(a, b);
}
cout << s[b] - s[a - 1] << endl;
}
return 0;
}