#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,q;
    scanf("%d %d",&n,&q);
    vector<int> a(n);
        vector<long long> sum(n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        if(i==0){
            sum[i]=a[i];
        }else{
            sum[i]=sum[i-1]+a[i];
        }
    }
    while(q!=0){
        q--;
        int l,r;
        cin >> l >> r;
        if(l>1){
            cout << sum[r-1]-sum[l-2] << endl;
        }else{
            cout << sum[r-1] << endl;
        }
    } 
}
前缀和
如果在每次输入一个q时,都去进行循环,时间复杂度会非常大,所以在每次输入一个a的同时可以先计算出前i项的和,然后最后用r减去l的前一个值,就可以得出区间和