AcWing 4789. 前缀和序列
原题链接
中等
作者:
AhNorth
,
2022-12-31 20:31:39
,
所有人可见
,
阅读 120
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define pre(i,a,b) for(int i=a;i>=b;i--)
#define IOS ios::sync_with_stdio(false);cin.tie(0);
typedef long long ll;
using namespace std;
const int N = 1e5+10;
ll a[N],b[N],prea[N],preb[N];
int main()
{
IOS;
int n,m;
cin >> n;
rep(i, 1, n)
{
cin >> a[i];
b[i] = a[i];
}
rep(i, 1, n)
{
prea[i] = prea[i - 1] + a[i];
}
sort(b + 1, b + n + 1);
rep(i, 1, n)
{
preb[i] = preb[i - 1] + b[i];
}
cin >> m;
while (m--)
{
int idx, l, r;
cin >> idx >> l >> r;
if (idx == 1)
{
cout << prea[r] - prea[l - 1] << '\n';
}
else if(idx==2)
{
cout << preb[r] - preb[l - 1] << '\n';
}
}
return 0;
}