#include <bits/stdc++.h>
#define ii pair <int, int>
#define vi vector <int>
#define vvi vector <vi>
#define vvvi vector <vvi>
#define ld long double
#define ll long long
#define pb push_back
#define BIT(mask,i) (((mask) >> (i)) & 1ll)
#define MASK(i) (1ll << i)
#define ONBIT(mask,i) (mask | (1ll << (i)))
#define OFFBIT(mask, i) (mask &~ (1ll << (i)))
#define FOR(i,a,b) for (int i=a;i<=b;i++)
#define FORD(i,a,b) for (int i=a;i>=b;i--)
#define FORV(v,h) for (auto v:h)
using namespace std;
const int MOD = 1e9 + 7;
const int MAXN = 2e5 + 105;
const long long oo = 1e18 + 7;
int n, q;
int ans[MAXN];
int st[4 * MAXN];
struct ZATA {
int val, id;
} a[MAXN];
struct DATA {
int l, r, k, id;
} ques[MAXN];
bool cmp1(ZATA A, ZATA B) {
return A.val > B.val;
}
bool cmp2(DATA A, DATA B) {
return A.k > B.k;
}
void upd(int id, int l, int r, int u, int v) {
if (l > v || r < u) return;
if (l >= u && r <= v) {
st[id] = 1;
return;
}
int mid = (l + r) / 2;
upd(id * 2, l, mid, u, v);
upd(id * 2 + 1, mid + 1, r, u, v);
st[id] = st[id * 2] + st[id * 2 + 1];
}
int get(int id, int l, int r, int u, int v) {
if (l > v || r < u) return 0;
if (l >= u && r <= v) return st[id];
int mid = (l + r) / 2;
return get(id * 2, l, mid, u, v) + get(id * 2 + 1, mid + 1, r, u, v);
}
main() {
ios_base::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin >> n;
FOR(i,1,n) {
cin >> a[i].val;
a[i].id = i;
}
cin >> q;
FOR(i,1,q) {
cin >> ques[i].l >> ques[i].r >> ques[i].k;
ques[i].id = i;
}
sort(a + 1, a + n + 1, cmp1);
sort(ques + 1, ques + q + 1, cmp2);
int j = 1;
FOR(i,1,q) {
while (a[j].val > ques[i].k && j <= n) {
upd(1, 1, n, a[j].id, a[j].id);
j++;
}
ans[ques[i].id] = get(1, 1, n, ques[i].l, ques[i].r);
}
FOR(i,1,q) cout << ans[i] << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaWkgcGFpciA8aW50LCBpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yIDxpbnQ+CiNkZWZpbmUgdnZpIHZlY3RvciA8dmk+CiNkZWZpbmUgdnZ2aSB2ZWN0b3IgPHZ2aT4KI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEJJVChtYXNrLGkpICgoKG1hc2spID4+IChpKSkgJiAxbGwpCiNkZWZpbmUgTUFTSyhpKSAoMWxsIDw8IGkpCiNkZWZpbmUgT05CSVQobWFzayxpKSAobWFzayB8ICgxbGwgPDwgKGkpKSkKI2RlZmluZSBPRkZCSVQobWFzaywgaSkgKG1hc2sgJn4gKDFsbCA8PCAoaSkpKQojZGVmaW5lIEZPUihpLGEsYikgZm9yIChpbnQgaT1hO2k8PWI7aSsrKQojZGVmaW5lIEZPUkQoaSxhLGIpIGZvciAoaW50IGk9YTtpPj1iO2ktLSkKI2RlZmluZSBGT1JWKHYsaCkgZm9yIChhdXRvIHY6aCkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CmNvbnN0IGludCBNQVhOID0gMmU1ICsgMTA1Owpjb25zdCBsb25nIGxvbmcgb28gPSAxZTE4ICsgNzsKaW50IG4sIHE7CmludCBhbnNbTUFYTl07CmludCBzdFs0ICogTUFYTl07CgpzdHJ1Y3QgWkFUQSB7CiAgICBpbnQgdmFsLCBpZDsKfSBhW01BWE5dOwoKc3RydWN0IERBVEEgewogICAgaW50IGwsIHIsIGssIGlkOwp9IHF1ZXNbTUFYTl07Cgpib29sIGNtcDEoWkFUQSBBLCBaQVRBIEIpIHsKICAgIHJldHVybiBBLnZhbCA+IEIudmFsOwp9Cgpib29sIGNtcDIoREFUQSBBLCBEQVRBIEIpIHsKICAgIHJldHVybiBBLmsgPiBCLms7Cn0KCnZvaWQgdXBkKGludCBpZCwgaW50IGwsIGludCByLCBpbnQgdSwgaW50IHYpIHsKICAgIGlmIChsID4gdiB8fCByIDwgdSkgcmV0dXJuOwogICAgaWYgKGwgPj0gdSAmJiByIDw9IHYpIHsKICAgICAgICBzdFtpZF0gPSAxOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQgPSAobCArIHIpIC8gMjsKICAgIHVwZChpZCAqIDIsIGwsIG1pZCwgdSwgdik7CiAgICB1cGQoaWQgKiAyICsgMSwgbWlkICsgMSwgciwgdSwgdik7CiAgICBzdFtpZF0gPSBzdFtpZCAqIDJdICsgc3RbaWQgKiAyICsgMV07Cn0KCmludCBnZXQoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdikgewogICAgaWYgKGwgPiB2IHx8IHIgPCB1KSByZXR1cm4gMDsKICAgIGlmIChsID49IHUgJiYgciA8PSB2KSByZXR1cm4gc3RbaWRdOwogICAgaW50IG1pZCA9IChsICsgcikgLyAyOwogICAgcmV0dXJuIGdldChpZCAqIDIsIGwsIG1pZCwgdSwgdikgKyBnZXQoaWQgKiAyICsgMSwgbWlkICsgMSwgciwgdSwgdik7Cn0KCm1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBjaW4gPj4gbjsKICAgIEZPUihpLDEsbikgewogICAgICAgIGNpbiA+PiBhW2ldLnZhbDsKICAgICAgICBhW2ldLmlkID0gaTsKICAgIH0KICAgIGNpbiA+PiBxOwogICAgRk9SKGksMSxxKSB7CiAgICAgICAgY2luID4+IHF1ZXNbaV0ubCA+PiBxdWVzW2ldLnIgPj4gcXVlc1tpXS5rOwogICAgICAgIHF1ZXNbaV0uaWQgPSBpOwogICAgfQoKICAgIHNvcnQoYSArIDEsIGEgKyBuICsgMSwgY21wMSk7CiAgICBzb3J0KHF1ZXMgKyAxLCBxdWVzICsgcSArIDEsIGNtcDIpOwogICAgaW50IGogPSAxOwogICAgRk9SKGksMSxxKSB7CiAgICAgICAgd2hpbGUgKGFbal0udmFsID4gcXVlc1tpXS5rICYmIGogPD0gbikgewogICAgICAgICAgICB1cGQoMSwgMSwgbiwgYVtqXS5pZCwgYVtqXS5pZCk7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICAgICAgYW5zW3F1ZXNbaV0uaWRdID0gZ2V0KDEsIDEsIG4sIHF1ZXNbaV0ubCwgcXVlc1tpXS5yKTsKICAgIH0KCiAgICBGT1IoaSwxLHEpIGNvdXQgPDwgYW5zW2ldIDw8ICdcbic7CgogICAgcmV0dXJuIDA7Cn0K