题意

犇犇是一只贪玩的牛。他最喜欢的游戏是夹娃娃。已知有 n 个娃娃排成一排,犇犇可以控制夹子的位置和夹子的宽度。每个娃娃的价值为整数 w[i],犇犇想知道,他夹起的l 到r 个娃娃的总价值是多少

输入描述

第 1 行两个正整数 n,k。n 表示娃娃的个数,k 表示询问的次数
第 2 行 n 个正整数,表示数组 w,第 i 个数字表示 w[i]
接下来的 k 行,每行两个正整数 l,r。表示犇犇抓起来的娃娃的范围。
数据范围:
对于20%的数据,保证l=r
对于30%的数据,保证n<=100
对于20%的数据,保证k<=100
对于所有数据:
1<=n<=1e5, 1<=k<=1e6
1<=w[i]<=1e3
1<=l<=r<=n

输出描述

输出 k 行,每行一个数,表示从 l 到 r 的价值和。

解析

裸的前缀和题目,没什么坑点,会卡cin和cout,然后就没什么问题了

代码

#include&amp;amp;lt;bits/stdc++.h&amp;amp;gt;
#define js ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std;
typedef long long ll;
const int MAXN=100005;
ll sum[MAXN];
ll a[MAXN];
int main(void) {
    int n,m;
    scanf(&amp;amp;quot;%d%d&amp;amp;quot;,&amp;amp;amp;n,&amp;amp;amp;m);
    for(int i=1;i&amp;amp;lt;=n;++i){
        scanf(&amp;amp;quot;%d&amp;amp;quot;,&amp;amp;amp;a[i]);
        sum[i]=sum[i-1]+a[i];
    }
    int l,r;
    for(int i=1;i&amp;amp;lt;=m;++i){
        scanf(&amp;amp;quot;%d%d&amp;amp;quot;,&amp;amp;amp;l,&amp;amp;amp;r);
        printf(&amp;amp;quot;%ld\n&amp;amp;quot;,sum[r]-sum[l-1]);
    }
    return 0;
}