问题 E: 一维数组子序列的和
1 枚 1000ms 128MB
题目描述
输入一个长度为n的整数序列。
接下来再输入m个询问,每个询问输入一对l, r。
对于每个询问,输出原序列中从第l个数到第r个数的和。
输入要求
第一行包含两个整数n和m。
第二行包含n个整数,表示整数数列。
接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。
输出要求
共m行,每行输出一个询问的结果。
输入样例 复制
10 2
12 9 1 11 14 13 18 6 10 17
3 7
4 9
输出样例 复制
57
72
int n = 0, m = 0;
cout << "输入数组长度和询问次数:";
cin >> n >> m;
cout << "输入" << n << "个数字";
vector<int> res;
int val;
for (int i = 0; i < n; ++i)
{
cin >> val;
res.push_back(val);
}
cout << "输入" << m << "组询问";
int l, r;
vector<int> Count;
for (int i = 0; i < m; ++i)
{
cin >> l >> r;
int sum = 0;
for (int j = l-1; j < r; ++j)
{
sum += res[j];
}
Count.push_back(sum);
}
cout << "输出" << endl;
for (int i = 0; i < Count.size(); ++i)
{
cout << Count[i] << endl;
}