一.问题描述

输入一个长度为n的整数序列。
接下来再输入m个询问,每个询问输入一对l, r。
对于每个询问,输出原序列中从第l个数到第r个数的和。

二.设计思路

 直接套用模板即可

三.流程图

四.伪代码 

1

五.代码实现 

1#include<iostream>

using namespace std;

const int N = 100010;
int a[N], s[N];

int main()
{
    int n, m;
    scanf("%d%d", &n, &m);
    
    for(int i = 1; i <= n; i ++) scanf("%d", &a[i]);
    
    for(int i = 1; i <= n; i ++) s[i] = s[i - 1] + a[i];//前缀和初始化
    
    while(m--)
    {
        int l, r;
        scanf("%d%d", &l, &r);
        printf("%d\n", s[r] - s[l-1]);
    }
    
    return 0;
}

 

posted on 2023-04-19 21:11  leapss  阅读(21)  评论(0)    收藏  举报