#include <bits/stdc++.h>
using namespace std;
#define fastIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define ll long long
#define pii pair<int, int>
#define ppiii pair<pair<int, int>, int>
#define pipii pair<int, pair<int, int>>
const int INF = 1e9;
const int MOD = 1e9+7;
const int N = 3e4+5;
struct query{
int l, r, k, id;
} Q[200005];
pii a[N];
int seg[4*N];
int n, q;
int ans[200005];
void update(int id, int l, int r, int pos, int k){
if (l>pos || r<pos) return;
if (l==r){
seg[id] = 1;
return;
}
int m = (l+r)/2;
update(2*id, l, m, pos, k);
update(2*id+1, m+1, r, pos, k);
seg[id] = seg[2*id]+seg[2*id+1];
}
int get(int id, int l, int r, int u, int v){
if (l>v || r<u){
return 0;
}
if (u<=l && r<=v){
return seg[id];
}
int m = (l+r)/2;
return get(2*id, l, m, u, v) + get(2*id+1, m+1, r, u, v);
}
bool cmp_a(pii x, pii y){
return x.first > y.first;
}
bool cmp_Q(query x, query y){
return x.k > y.k;
}
int main(){
fastIO;
cin >> n;
for (int i=1; i<=n; i++){
cin >> a[i].first;
a[i].second = i;
}
sort(a+1, a+1+n, cmp_a);
cin >> q;
for (int i=1; i<=q; i++){
cin >> Q[i].l >> Q[i].r >> Q[i].k;
Q[i].id = i;
}
sort(Q+1, Q+1+q, cmp_Q);
int j = 1;
for (int i = 1; i<=q; i++){
while (j<=n && a[j].first>Q[i].k){
update(1, 1, n, a[j].second, 1);
j++;
}
ans[Q[i].id] = get(1, 1, n, Q[i].l, Q[i].r);
}
for (int i=1; i<=q; i++){
cout << ans[i] << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdElPIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIHBwaWlpIHBhaXI8cGFpcjxpbnQsIGludD4sIGludD4KI2RlZmluZSBwaXBpaSBwYWlyPGludCwgcGFpcjxpbnQsIGludD4+Cgpjb25zdCBpbnQgSU5GID0gMWU5Owpjb25zdCBpbnQgTU9EID0gMWU5Kzc7CmNvbnN0IGludCBOID0gM2U0KzU7CgpzdHJ1Y3QgcXVlcnl7CiAgICBpbnQgbCwgciwgaywgaWQ7Cn0gUVsyMDAwMDVdOwpwaWkgYVtOXTsKaW50IHNlZ1s0Kk5dOwppbnQgbiwgcTsKaW50IGFuc1syMDAwMDVdOwoKdm9pZCB1cGRhdGUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCBwb3MsIGludCBrKXsKICAgIGlmIChsPnBvcyB8fCByPHBvcykgcmV0dXJuOwogICAgaWYgKGw9PXIpewogICAgICAgIHNlZ1tpZF0gPSAxOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtID0gKGwrcikvMjsKICAgIHVwZGF0ZSgyKmlkLCBsLCBtLCBwb3MsIGspOwogICAgdXBkYXRlKDIqaWQrMSwgbSsxLCByLCBwb3MsIGspOwogICAgc2VnW2lkXSA9IHNlZ1syKmlkXStzZWdbMippZCsxXTsKfQoKaW50IGdldChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KXsKICAgIGlmIChsPnYgfHwgcjx1KXsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGlmICh1PD1sICYmIHI8PXYpewogICAgICAgIHJldHVybiBzZWdbaWRdOwogICAgfQogICAgaW50IG0gPSAobCtyKS8yOwogICAgcmV0dXJuIGdldCgyKmlkLCBsLCBtLCB1LCB2KSArIGdldCgyKmlkKzEsIG0rMSwgciwgdSwgdik7Cn0KCmJvb2wgY21wX2EocGlpIHgsIHBpaSB5KXsKICAgIHJldHVybiB4LmZpcnN0ID4geS5maXJzdDsKfQoKYm9vbCBjbXBfUShxdWVyeSB4LCBxdWVyeSB5KXsKICAgIHJldHVybiB4LmsgPiB5Lms7Cn0KCmludCBtYWluKCl7CiAgICBmYXN0SU87CgogICAgY2luID4+IG47CiAgICBmb3IgKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgY2luID4+IGFbaV0uZmlyc3Q7CiAgICAgICAgYVtpXS5zZWNvbmQgPSBpOwogICAgfQogICAgc29ydChhKzEsIGErMStuLCBjbXBfYSk7CiAgICBjaW4gPj4gcTsKICAgIGZvciAoaW50IGk9MTsgaTw9cTsgaSsrKXsKICAgICAgICBjaW4gPj4gUVtpXS5sID4+IFFbaV0uciA+PiBRW2ldLms7CiAgICAgICAgUVtpXS5pZCA9IGk7CiAgICB9CiAgICBzb3J0KFErMSwgUSsxK3EsIGNtcF9RKTsKICAgIGludCBqID0gMTsKICAgIGZvciAoaW50IGkgPSAxOyBpPD1xOyBpKyspewogICAgICAgIHdoaWxlIChqPD1uICYmIGFbal0uZmlyc3Q+UVtpXS5rKXsKICAgICAgICAgICAgdXBkYXRlKDEsIDEsIG4sIGFbal0uc2Vjb25kLCAxKTsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KICAgICAgICBhbnNbUVtpXS5pZF0gPSBnZXQoMSwgMSwgbiwgUVtpXS5sLCBRW2ldLnIpOwogICAgfQogICAgZm9yIChpbnQgaT0xOyBpPD1xOyBpKyspewogICAgICAgIGNvdXQgPDwgYW5zW2ldIDw8ICdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==