【作业】第1课:前缀和

潘CSP200班

2024-01-23 10:02:39
2024-01-31 10:02:39

信息与公告

int f(int x, int q)  // 辗转相除法 
{
	if(x%q==0) return q;   
	else return f(q,x%q);
}
//  前缀和模板
#include <bits/stdc++.h>
using namespace std;

int n,m;   
int a[100001];   // 注意数据大小、数据数量
int b[100001];   // 用于存放每个元素的前缀和

int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++) 
	{	
		cin>>a[i];
		b[i]=b[i-1]+a[i];    // 计算第 i 个元素的前缀和,其中:b[0] = 0; b[n] 是所有元素的和。
	}	
	int l, r;
	for(int i=1; i<=m; i++)
	{
		cin>>l>>r;	 
		cout<<b[r]-b[l-1]<<endl;    // 直接计算区间[l, r]的和
	}
	return 0;
}