#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 3e4 + 5;
int n, q;
int a[N];
vector<int> seg[4 * N]; // seg[id] = vector chứa các phần tử thuộc đoạn [l, r] theo thứ tự tăng dần
void build(int id, int l, int r) {
if (l == r) {
seg[id].push_back(a[l]);
return;
}
int mid = (l + r) >> 1;
build(id * 2, l, mid);
build(id * 2 + 1, mid + 1, r);
merge(seg[id * 2].begin(), seg[id * 2].end(), seg[id * 2 + 1].begin(), seg[id * 2 + 1].end(), back_inserter(seg[id]));
}
int get(int id, int l, int r, int u, int v, int k) {
if (l > v || r < u) return 0;
if (u <= l && r <= v) {
int pos = upper_bound(seg[id].begin(), seg[id].end(), k) - seg[id].begin();
return seg[id].size() - pos;
}
int mid = (l + r) >> 1;
return get(id * 2, l, mid, u, v, k) + get(id * 2 + 1, mid + 1, r, u, v, k);
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
build(1, 1, n);
cin >> q;
while (q--) {
int i, j, k;
cin >> i >> j >> k;
cout << get(1, 1, n, i, j, k) << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDNlNCArIDU7ICAKCmludCBuLCBxOyAgCmludCBhW05dOyAKCnZlY3RvcjxpbnQ+IHNlZ1s0ICogTl07IC8vIHNlZ1tpZF0gPSB2ZWN0b3IgY2jhu6lhIGPDoWMgcGjhuqduIHThu60gdGh14buZYyDEkW/huqFuIFtsLCByXSB0aGVvIHRo4bupIHThu7EgdMSDbmcgZOG6p24KCnZvaWQgYnVpbGQoaW50IGlkLCBpbnQgbCwgaW50IHIpIHsKCWlmIChsID09IHIpIHsKCQlzZWdbaWRdLnB1c2hfYmFjayhhW2xdKTsgCgkJcmV0dXJuOyAKCX0KCWludCBtaWQgPSAobCArIHIpID4+IDE7IAoJYnVpbGQoaWQgKiAyLCBsLCBtaWQpOyAKCWJ1aWxkKGlkICogMiArIDEsIG1pZCArIDEsIHIpOyAKCW1lcmdlKHNlZ1tpZCAqIDJdLmJlZ2luKCksIHNlZ1tpZCAqIDJdLmVuZCgpLCBzZWdbaWQgKiAyICsgMV0uYmVnaW4oKSwgc2VnW2lkICogMiArIDFdLmVuZCgpLCBiYWNrX2luc2VydGVyKHNlZ1tpZF0pKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp9CgppbnQgZ2V0KGludCBpZCwgaW50IGwsIGludCByLCBpbnQgdSwgaW50IHYsIGludCBrKSB7CglpZiAobCA+IHYgfHwgciA8IHUpIHJldHVybiAwOyAgIAoKCWlmICh1IDw9IGwgJiYgciA8PSB2KSB7CgkJaW50IHBvcyA9IHVwcGVyX2JvdW5kKHNlZ1tpZF0uYmVnaW4oKSwgc2VnW2lkXS5lbmQoKSwgaykgLSBzZWdbaWRdLmJlZ2luKCk7ICAgCgkJcmV0dXJuIHNlZ1tpZF0uc2l6ZSgpIC0gcG9zOyAgIAoJfQoKCWludCBtaWQgPSAobCArIHIpID4+IDE7IAoJcmV0dXJuIGdldChpZCAqIDIsIGwsIG1pZCwgdSwgdiwgaykgKyBnZXQoaWQgKiAyICsgMSwgbWlkICsgMSwgciwgdSwgdiwgayk7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyAgCQoJY2luID4+IG47IAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsgCgoJYnVpbGQoMSwgMSwgbik7IAoKCWNpbiA+PiBxOyAKCXdoaWxlIChxLS0pIHsKCQlpbnQgaSwgaiwgazsgCgkJY2luID4+IGkgPj4gaiA+PiBrOyAgCgkJY291dCA8PCBnZXQoMSwgMSwgbiwgaSwgaiwgaykgPDwgJ1xuJzsgCgl9Cn0K