2291 糖果堆

2291 糖果堆

 

时间限制: 1 s
空间限制: 64000 KB
题目等级 : 白银 Silver
 
 
 
题目描述 Description

【Shadow 1】第一题

WJMZBMR买了很多糖果,分成了N堆,排成一列。WJMZBMR说,如果Shadow能迅速求出第L堆到第R堆一共有多少糖果,就把这些糖果都给他。

现在给出每堆糖果的数量,以及每次询问的L和R,你需要帮助Shadow,把每次询问的结果求出来。注意,你不需要考虑糖果被Shadow取走的情况。

输入描述 Input Description

第1行,2的整数N,M,分别表示堆数和询问数量;

第2行,N个整数Ai,表示第i堆糖果的数量;

第3-(M+2)行,每行2个整数Li, Ri,表示第i个询问是[Li, Ri]。

输出描述 Output Description

M行,对于每个询问,输出对应的和。

样例输入 Sample Input
5 5
1 2 3 4 5
1 5
2 4
3 3
1 3
3 5
样例输出 Sample Output
15
9
3
6
12
数据范围及提示 Data Size & Hint

对于50%的数据,1≤N,M≤100;
对于100%的数据,1≤N,M≤100000,0≤Ai≤1000,1≤Li≤Ri≤N。

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int t[100100],s[200100];
 5 int main()
 6 {
 7     int n,m,a,b,c=0;
 8     cin>>n>>m;
 9     for(int i=1;i<=n;++i)
10     {
11         scanf("%d",&t[i]);
12         s[i]=s[i-1]+t[i];
13     }
14     for(int i=1;i<=m;++i)
15     {
16         scanf("%d%d",&a,&b);
17         printf("%d\n",s[b]-s[a-1]);    
18     }
19     return 0;
20 }

 

posted @ 2017-04-06 16:43  MJT12044  阅读(179)  评论(0编辑  收藏  举报