吃胖了的阿生

Description

 

阿生的朋友都知道阿生是个吃货,由此而来带来的问题是阿生每天都在长胖,虽然他丝毫都不在意。现在阿生想知道任意两天之间,他一共吃胖了多少斤,请你帮一下他吧

Input

 

输入第一行是两个整数n,m,表示有n天和m组测试数据

第二行是n个数,表示第i天阿生胖了多少

随后m行,每行输入两个数a,b,代表第a天和第b天

1 <= n, m<= 10^5,

1 <= a, b<= 1000,

Output

 

对于给定的a和b,请你计算a到b之间阿生一共胖了多少(包括a和b两个端点)

Sample Input 1 

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

Sample Output 1

3
5
7

【HBUOJ】阿生的小球姊妹题

直接用数组存长胖的大小就行了。

然后输出差,

1 2的差就是  下标2 和下标0的差  3-0 =3

2 3的差就是  下标3 和下标1的差  6-1 =5

3 4的差就是  下标4 和下标2的差  10-3 =7

a b的差就是  下标b 和下标a-1的差  

#include<iostream>
#include<vector>
using namespace std;
int main(){
	int m,n,k;
	cin>>m>>n;
	vector<long long int>num2(m+1);
	for(int i=1;i<=m;i++){
		cin>>k;
		num2[i]=num2[i-1]+num[i];
	}
	int flag=0;
	for(int i=0;i<n;i++){
		int a,b;
		cin>>a>>b;
		cout<<num2[b]-num2[a-1]<<endl;
	}
	return 0;
}