#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define popcount __builtin_popcount
#define all(a) (a).begin(), (a).end()
using namespace std;
using namespace chrono;
using namespace __gnu_pbds;
template<typename T> using ordered_set = tree<T,null_type,less_equal<>,rb_tree_tag,tree_order_statistics_node_update>;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, q; cin >> n;
int A[n], pref[n+1];
pref[0] = 0;
for (int i = 0; i < n; i++) {
cin >> A[i];
pref[i+1] = pref[i] + A[i];
}
auto t1 = [&]() {
for (int i = 0; i < n-1; i++) {
if (A[i] > A[i+1]) {
swap(A[i], A[i+1]);
}
}
for (int i = 0; i < n; i++)
pref[i+1] = pref[i] + A[i];
};
cin >> q; while (q--) {
int t,l,r; cin >> t;
if (t == 1) t1();
else { cin >> l >> r; cout << pref[r] - pref[l-1] << "\n"; }
}
}