#include <bits/stdc+
2026-10-04 10:34:05
发布于:广东
2阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<long long> a(n + 1); // 下标从1开始
for (int i = 1; i <= n; i++) cin >> a[i];
// 1) 原数组前缀和
vector<long long> prefA(n + 1, 0);
for (int i = 1; i <= n; i++)
prefA[i] = prefA[i - 1] + a[i];
// 2) 排序后做前缀和
vector<long long> b = a; // 拷贝一份
sort(b.begin() + 1, b.end()); // 升序
vector<long long> prefB(n + 1, 0);
for (int i = 1; i <= n; i++)
prefB[i] = prefB[i - 1] + b[i];
// 3) 回答询问
int m;
cin >> m;
while (m--) {
int t, l, r;
cin >> t >> l >> r;
if (t == 1)
cout << prefA[r] - prefA[l - 1] << endl; // 原数组
else
cout << prefB[r] - prefB[l - 1] << endl; // 排序后
}
return 0;
}
这里空空如也








有帮助,赞一个