求一维数组子序列的和

问题 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;
    }

img