#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// Function to compute prefix sums
vector<long long> computePrefixSum(const vector<int>& arr) {
int n = arr.size();
vector<long long> prefixSum(n + 1, 0);
for (int i = 0; i < n; i++) {
prefixSum[i + 1] = prefixSum[i] + arr[i];
}
return prefixSum;
}
// Function to find the sum in range using prefix sums
long long rangeSum(const vector<long long>& prefixSum, int left, int right) {
return prefixSum[right + 1] - prefixSum[left];
}
int main() {
int N;
cin >> N;
vector<int> A(N);
for (int i = 0; i < N; i++) {
cin >> A[i];
}
// Sort the array to efficiently answer range queries
sort(A.begin(), A.end());
// Compute prefix sum
vector<long long> prefixSum = computePrefixSum(A);
int Q;
cin >> Q;
while (Q--) {
int L, R;
cin >> L >> R;
// Use binary search to find range indices
auto leftIdx = lower_bound(A.begin(), A.end(), L) - A.begin();
auto rightIdx = upper_bound(A.begin(), A.end(), R) - A.begin() - 1;
// Compute sum in range
if (leftIdx <= rightIdx) {
cout << rangeSum(prefixSum, leftIdx, rightIdx) << " ";
} else {
cout << "0 "; // No elements in range
}
}
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmN0aW9uIHRvIGNvbXB1dGUgcHJlZml4IHN1bXMKdmVjdG9yPGxvbmcgbG9uZz4gY29tcHV0ZVByZWZpeFN1bShjb25zdCB2ZWN0b3I8aW50PiYgYXJyKSB7CiAgICBpbnQgbiA9IGFyci5zaXplKCk7CiAgICB2ZWN0b3I8bG9uZyBsb25nPiBwcmVmaXhTdW0obiArIDEsIDApOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmVmaXhTdW1baSArIDFdID0gcHJlZml4U3VtW2ldICsgYXJyW2ldOwogICAgfQogICAgcmV0dXJuIHByZWZpeFN1bTsKfQoKLy8gRnVuY3Rpb24gdG8gZmluZCB0aGUgc3VtIGluIHJhbmdlIHVzaW5nIHByZWZpeCBzdW1zCmxvbmcgbG9uZyByYW5nZVN1bShjb25zdCB2ZWN0b3I8bG9uZyBsb25nPiYgcHJlZml4U3VtLCBpbnQgbGVmdCwgaW50IHJpZ2h0KSB7CiAgICByZXR1cm4gcHJlZml4U3VtW3JpZ2h0ICsgMV0gLSBwcmVmaXhTdW1bbGVmdF07Cn0KCmludCBtYWluKCkgewogICAgaW50IE47CiAgICBjaW4gPj4gTjsKICAgIAogICAgdmVjdG9yPGludD4gQShOKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgY2luID4+IEFbaV07CiAgICB9CgogICAgLy8gU29ydCB0aGUgYXJyYXkgdG8gZWZmaWNpZW50bHkgYW5zd2VyIHJhbmdlIHF1ZXJpZXMKICAgIHNvcnQoQS5iZWdpbigpLCBBLmVuZCgpKTsKICAgIAogICAgLy8gQ29tcHV0ZSBwcmVmaXggc3VtCiAgICB2ZWN0b3I8bG9uZyBsb25nPiBwcmVmaXhTdW0gPSBjb21wdXRlUHJlZml4U3VtKEEpOwoKICAgIGludCBROwogICAgY2luID4+IFE7CgogICAgd2hpbGUgKFEtLSkgewogICAgICAgIGludCBMLCBSOwogICAgICAgIGNpbiA+PiBMID4+IFI7CgogICAgICAgIC8vIFVzZSBiaW5hcnkgc2VhcmNoIHRvIGZpbmQgcmFuZ2UgaW5kaWNlcwogICAgICAgIGF1dG8gbGVmdElkeCA9IGxvd2VyX2JvdW5kKEEuYmVnaW4oKSwgQS5lbmQoKSwgTCkgLSBBLmJlZ2luKCk7CiAgICAgICAgYXV0byByaWdodElkeCA9IHVwcGVyX2JvdW5kKEEuYmVnaW4oKSwgQS5lbmQoKSwgUikgLSBBLmJlZ2luKCkgLSAxOwoKICAgICAgICAvLyBDb21wdXRlIHN1bSBpbiByYW5nZQogICAgICAgIGlmIChsZWZ0SWR4IDw9IHJpZ2h0SWR4KSB7CiAgICAgICAgICAgIGNvdXQgPDwgcmFuZ2VTdW0ocHJlZml4U3VtLCBsZWZ0SWR4LCByaWdodElkeCkgPDwgIiAiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgIjAgIjsgIC8vIE5vIGVsZW1lbnRzIGluIHJhbmdlCiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==