#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
const int MAXN = 1e6 + 5;
const int inf = (int)2e9 + 5;
const int infll = (int)4e18 + 5;
const int mod = (int)1e9 + 7;
struct BIT {
int n;
vector<int> tree;
BIT(int n) {
this->n = n;
tree.assign(n + 5, 0);
}
void update(int p, int x) {
for(; p <= n; p += p & -p) tree[p] += x;
}
int query(int p) {
int res = 0;
for(; p > 0; p -= p & -p) res += tree[p];
return res;
}
int range_query(int l, int r) {
return query(r) - query(l - 1);
}
};
int pref[MAXN];
void solve(){
int n;
cin >> n;
vector<int> a(n + 1);
int allmn = inf;
for(int i = 1; i <= n; i++) {
cin >> a[i];
allmn = min(a[i], allmn);
}
int mn = a[1];
int cnt = 0;
int prev = 0;
for(int i = 2; i <= n; i++) {
if(a[i] < mn) {
pref[prev] += mn;
if(a[i] != allmn) pref[cnt + 1] -= mn;
prev = cnt + 1;
mn = a[i];
}
cnt++;
}
for(int i = 1; i <= n; i++) pref[i] += pref[i-1];
int q;
cin >> q;
cnt = 0;
while(q--) {
int t;
cin >> t;
if(t == 1) cnt++;
else {
int l, r;
cin >> l >> r;
cout << pref[cnt] << endl;
}
}
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t = 1;
//cin >> t;
while(t--)
solve();
return 0;
}