#include <bits/stdc++.h>
using namespace std;
const int MAXN = 3e4 + 11;
int n, a[MAXN], l, r, k, q;
vector<vector<int>> st(MAXN * 4);
void build(int id, int l, int r) {
if (l == r) {
st[id].push_back(a[l]);
return ;
}
int mid = (l + r) / 2;
build(id*2, l, mid);
build(id*2+1, mid+1, r);
st[id].resize(st[id * 2].size() + st[id * 2 + 1].size());
merge(st[id*2].begin(), st[id*2].end(), st[id*2+1].begin(), st[id*2+1].end(), st[id].begin());
}
int get(int id, int l, int r, int u, int v, int k)
{
if (v < l || r < u)
return 0;
if (u <= l && r <= v)
{
return st[id].size() - (upper_bound(st[id].begin(), st[id].end(), k) - st[id].begin());
}
int mid = (l + r) / 2;
return get(id * 2, l, mid, u, v, k) + get(id * 2 + 1, mid + 1, r, u, v, k);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> a[i];
build(1, 1, n);
cin >> q;
while (q--)
{
cin >> l >> r >> k;
cout << get(1, 1, n, l, r, k) << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWE4gPSAzZTQgKyAxMTsKaW50IG4sIGFbTUFYTl0sIGwsIHIsIGssIHE7CnZlY3Rvcjx2ZWN0b3I8aW50Pj4gc3QoTUFYTiAqIDQpOwoKdm9pZCBidWlsZChpbnQgaWQsIGludCBsLCBpbnQgcikgewogICAgaWYgKGwgPT0gcikgewogICAgICAgIHN0W2lkXS5wdXNoX2JhY2soYVtsXSk7CiAgICAgICAgcmV0dXJuIDsKICAgIH0KICAgIGludCBtaWQgPSAobCArIHIpIC8gMjsKICAgIGJ1aWxkKGlkKjIsIGwsIG1pZCk7CiAgICBidWlsZChpZCoyKzEsIG1pZCsxLCByKTsKCQoJc3RbaWRdLnJlc2l6ZShzdFtpZCAqIDJdLnNpemUoKSArIHN0W2lkICogMiArIDFdLnNpemUoKSk7CiAgICBtZXJnZShzdFtpZCoyXS5iZWdpbigpLCBzdFtpZCoyXS5lbmQoKSwgc3RbaWQqMisxXS5iZWdpbigpLCBzdFtpZCoyKzFdLmVuZCgpLCBzdFtpZF0uYmVnaW4oKSk7Cn0KCmludCBnZXQoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgaW50IGspCnsKICAgIGlmICh2IDwgbCB8fCByIDwgdSkKICAgICAgICByZXR1cm4gMDsKCiAgICBpZiAodSA8PSBsICYmIHIgPD0gdikKICAgIHsKICAgICAgICByZXR1cm4gc3RbaWRdLnNpemUoKSAtICh1cHBlcl9ib3VuZChzdFtpZF0uYmVnaW4oKSwgc3RbaWRdLmVuZCgpLCBrKSAtIHN0W2lkXS5iZWdpbigpKTsKICAgIH0KCiAgICBpbnQgbWlkID0gKGwgKyByKSAvIDI7CiAgICByZXR1cm4gZ2V0KGlkICogMiwgbCwgbWlkLCB1LCB2LCBrKSArIGdldChpZCAqIDIgKyAxLCBtaWQgKyAxLCByLCB1LCB2LCBrKTsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBjaW4gPj4gbjsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICAgICAgY2luID4+IGFbaV07CgogICAgYnVpbGQoMSwgMSwgbik7CiAgICBjaW4gPj4gcTsKICAgIHdoaWxlIChxLS0pCiAgICB7CiAgICAgICAgY2luID4+IGwgPj4gciA+PiBrOwogICAgICAgIGNvdXQgPDwgZ2V0KDEsIDEsIG4sIGwsIHIsIGspIDw8ICJcbiI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K