题目地址:点这里
额 直接前缀和就好了~
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long LL;
LL p[100005];
LL q[100005];
LL p_sum[100005],q_sum[100005];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
scanf("%I64d",&p[i]);
q[i]=p[i];
}
sort(q,q+n);
p_sum[0]=0;q_sum[0]=0;
for(int i=1;i<=n;i++)
{
p_sum[i]=p_sum[i-1]+p[i-1];
q_sum[i]=q_sum[i-1]+q[i-1];
}
int m;
cin>>m;
int type,l,r;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&type,&l,&r);
if(type==1)
{
printf("%I64d\n",p_sum[r]-p_sum[l-1]);
}
else{
printf("%I64d\n",q_sum[r]-q_sum[l-1]);
}
}
}