Description
输入一个长度为n的整数序列。
接下来再输入m个询问,每个询问输入一对l, r。
对于每个询问,输出原序列中从第l个数到第r个数的和。
Input
第一行包含两个整数n和m。
第二行包含n个整数,表示整数数列a。
接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。
1≤n、m≤1000000
1≤ai≤100
Output
共m行,每行输出一个询问的结果。
Sample Input 1
5 3 2 1 3 6 4 1 2 1 3 2 4
Sample Output 1
3 6 10
Code
#include <stdio.h>
int main()
{
long long int m,n,k=1;
scanf("%lld%lld",&n,&m);
long long int num[n+1],sum[n+1],sum_0[m+1];
for(long long int i = 1; i <= n; i ++)
{
scanf("%lld",&num[i]);
}
sum[0]=0;
for(long long int i = 1; i <= n; i ++)
{
sum[i] = sum[i - 1] + num[i];
}
long long int p=m;
while(p--)
{
long long int l, r;
scanf("%lld%lld",&l,&r);
sum_0[k++]=sum[r]-sum[l-1];
}
for(long long int i=1;i<=m;i++)
{
printf("%lld\n",sum_0[i]);
}
return 0;
}