4443: 【入门】计算能力(2060)

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:45 解决:21

题目描述

小 lns="http://www.w3.org/1998/Math/MathML"> 同学有着很强的计算能力,张老师为了检验小 lns="http://www.w3.org/1998/Math/MathML"> 同学的计算能力,写了一个 lns="http://www.w3.org/1998/Math/MathML"> 个数的数列。

张老师问了小 lns="http://www.w3.org/1998/Math/MathML"> 同学 lns="http://www.w3.org/1998/Math/MathML"> 个问题,每个问题都是请小 lns="http://www.w3.org/1998/Math/MathML"> 同学计算这个数列从第 lns="http://www.w3.org/1998/Math/MathML"> 个数开始到第 lns="http://www.w3.org/1998/Math/MathML"> 个数结束这个区间的所有数的和。

请你编程帮助张老师计算出结果。

输入

第一行包含两个整数 lns="http://www.w3.org/1998/Math/MathML"> 和 lns="http://www.w3.org/1998/Math/MathML"> 。

第二行包含 lns="http://www.w3.org/1998/Math/MathML"> 个整数。

接下来 lns="http://www.w3.org/1998/Math/MathML"> 行,每行包含两个整数 lns="http://www.w3.org/1998/Math/MathML"> 和 lns="http://www.w3.org/1998/Math/MathML"> 表示。

数据范围

lns="http://www.w3.org/1998/Math/MathML">1

lns="http://www.w3.org/1998/Math/MathML">1,100000

数列中元素的值,在 lns="http://www.w3.org/1998/Math/MathML">[1000,1000] 的范围内。

输出

共 lns="http://www.w3.org/1998/Math/MathML"> 行,每行输出一个询问的结果。

样例输入 复制

6 3
1 3 6 5 4 2
1 3
2 5
3 6

样例输出 复制

10
18
17

提示


#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int a[N],b[N]; //a数组表示读入的值,b数组代表前缀和
int n,m;
int main(){
    scanf("%d%d" ,&n,&m); //读入n个数
    for(int i=1;i <= n;i++){
	    scanf("%d" ,&a[i]);
        //求前缀和
        b[i]= b[i-1]+ a[i];
    }
    //读入m个问题 
    int x,y;
    for(int i=1;i<= m;i++){
        scanf("%d%d" ,&x,&y);
        printf("%d\n",b[y]-b[x-1]);
    }
    return 0;
}