/// Author : Nguyễn Thái Sơn - K18 - KHMT - UIT
/// Training ICPC 2024
#include<bits/stdc++.h>
/// #pragma GCC optimize("O3,unroll-loops")
/// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define fi first
#define se second
#define TASK "test"
#define pb push_back
#define EL cout << endl
#define Ti20_ntson int main()
#define in(x) cout << x << endl
#define all(x) (x).begin(),(x).end()
#define getbit(x, i) (((x) >> (i)) & 1)
#define cntbit(x) __builtin_popcount(x)
#define FOR(i,l,r) for (int i = l; i <= r; i++)
#define FORD(i,l,r) for (int i = l; i >= r; i--)
#define Debug(a,n) for (int i = 1; i <= n; i++) cout << a[i] << " "; cout << endl
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> vii;
typedef unsigned long long ull;
typedef vector<vector<int>> vvi;
int fastMax(int x, int y) { return (((y-x)>>(32-1))&(x^y))^y; }
const int N = 2e5 + 5;
const int oo = INT_MAX;
const int mod = 1e9 + 7;
const int d4x[4] = {-1, 0, 1, 0} , d4y[4] = {0, 1, 0, -1};
const int d8x[8] = {-1, -1, 0, 1, 1, 1, 0, -1}, d8y[8] = {0, 1, 1, 1, 0, -1, -1, -1};
const int BL = 447;
int n, a[N], cnt[N], Ans[N], Q;
struct Mo {
int l, r, x, stt;
bool operator < (const Mo &T) const {
if (l / BL != T.l / BL)
return l < T.l;
return r < T.r;
}
}t[N];
inline void Read_Input() {
cin >> n;
FOR(i, 1, n)
cin >> a[i];
cin >> Q;
FOR(i, 1, Q) {
cin >> t[i].l >> t[i].r >> t[i].x;
t[i].stt = i;
}
sort(t + 1, t + Q + 1);
}
inline void Solve() {
int ctL = 0;
int ctR = 1;
/// để hiểu ràng tôi đang có mảng [ctL, ctR - 1] = [0, 0]
FOR(i, 1, Q) {
int l = t[i].l;
int r = t[i].r;
int x = t[i].x;
int stt = t[i].stt;
while (ctL < l) --cnt[a[ctL]], ctL++;
while (ctL > l) ctL--,++cnt[a[ctL]];
while (ctR - 1 > r) --ctR, --cnt[a[ctR]];
while (ctR <= r) ++cnt[a[ctR]], ctR++;
Ans[stt] = cnt[x];
}
FOR(i, 1, Q)
cout << Ans[i] << endl;
}
Ti20_ntson {
// freopen(TASK".INP","r",stdin);
// freopen(TASK".OUT","w",stdout);
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int T = 1;
// cin >> T;
while (T -- ) {
Read_Input();
Solve();
}
}
Ly8vIEF1dGhvciA6IE5ndXnhu4VuIFRow6FpIFPGoW4gLSBLMTggLSBLSE1UIC0gVUlUCi8vLyBUcmFpbmluZyBJQ1BDIDIwMjQKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CgovLy8gI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zLHVucm9sbC1sb29wcyIpCi8vLyAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsYm1pLGJtaTIsbHpjbnQscG9wY250IikKCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBUQVNLICJ0ZXN0IgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEVMIGNvdXQgPDwgZW5kbAojZGVmaW5lIFRpMjBfbnRzb24gaW50IG1haW4oKQojZGVmaW5lIGluKHgpIGNvdXQgPDwgeCA8PCBlbmRsCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCh4KS5lbmQoKQojZGVmaW5lIGdldGJpdCh4LCBpKSAoKCh4KSA+PiAoaSkpICYgMSkKI2RlZmluZSBjbnRiaXQoeCkgX19idWlsdGluX3BvcGNvdW50KHgpCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IgKGludCBpID0gbDsgaSA8PSByOyBpKyspCiNkZWZpbmUgRk9SRChpLGwscikgZm9yIChpbnQgaSA9IGw7IGkgPj0gcjsgaS0tKQojZGVmaW5lIERlYnVnKGEsbikgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjb3V0IDw8IGFbaV0gPDwgIiAiOyBjb3V0IDw8IGVuZGwKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHZpaTsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gdnZpOwppbnQgZmFzdE1heChpbnQgeCwgaW50IHkpIHsgcmV0dXJuICgoKHkteCk+PigzMi0xKSkmKHheeSkpXnk7IH0KCmNvbnN0IGludCBOID0gMmU1ICsgNTsKY29uc3QgaW50IG9vID0gSU5UX01BWDsKY29uc3QgaW50IG1vZCA9IDFlOSArIDc7CmNvbnN0IGludCBkNHhbNF0gPSB7LTEsIDAsIDEsIDB9ICwgZDR5WzRdID0gezAsIDEsIDAsIC0xfTsKY29uc3QgaW50IGQ4eFs4XSA9IHstMSwgLTEsIDAsIDEsIDEsIDEsIDAsIC0xfSwgZDh5WzhdID0gezAsIDEsIDEsIDEsIDAsIC0xLCAtMSwgLTF9Owpjb25zdCBpbnQgQkwgPSA0NDc7CgppbnQgbiwgYVtOXSwgY250W05dLCBBbnNbTl0sIFE7CgpzdHJ1Y3QgTW8gewogICAgaW50IGwsIHIsIHgsIHN0dDsKCiAgICBib29sIG9wZXJhdG9yIDwgKGNvbnN0IE1vICZUKSBjb25zdCB7CgogICAgICAgIGlmIChsIC8gQkwgIT0gVC5sIC8gQkwpCiAgICAgICAgICAgIHJldHVybiBsIDwgVC5sOwoKICAgICAgICByZXR1cm4gciA8IFQucjsKCiAgICB9Cgp9dFtOXTsKCmlubGluZSB2b2lkIFJlYWRfSW5wdXQoKSB7CiAgICBjaW4gPj4gbjsKICAgIEZPUihpLCAxLCBuKQogICAgICAgIGNpbiA+PiBhW2ldOwogICAgY2luID4+IFE7CiAgICBGT1IoaSwgMSwgUSkgewogICAgICAgIGNpbiA+PiB0W2ldLmwgPj4gdFtpXS5yID4+IHRbaV0ueDsKICAgICAgICB0W2ldLnN0dCA9IGk7CiAgICB9CiAgICBzb3J0KHQgKyAxLCB0ICsgUSArIDEpOwp9CgppbmxpbmUgdm9pZCBTb2x2ZSgpIHsKICAgIGludCBjdEwgPSAwOwogICAgaW50IGN0UiA9IDE7CgogICAgLy8vIMSR4buDIGhp4buDdSByw6BuZyB0w7RpIMSRYW5nIGPDsyBt4bqjbmcgW2N0TCwgY3RSIC0gMV0gPSBbMCwgMF0KCiAgICBGT1IoaSwgMSwgUSkgewoKICAgICAgICBpbnQgbCA9IHRbaV0ubDsKICAgICAgICBpbnQgciA9IHRbaV0ucjsKICAgICAgICBpbnQgeCA9IHRbaV0ueDsKICAgICAgICBpbnQgc3R0ID0gdFtpXS5zdHQ7CgogICAgICAgIHdoaWxlIChjdEwgPCBsKSAtLWNudFthW2N0TF1dLCBjdEwrKzsKCiAgICAgICAgd2hpbGUgKGN0TCA+IGwpIGN0TC0tLCsrY250W2FbY3RMXV07CgogICAgICAgIHdoaWxlIChjdFIgLSAxID4gcikgLS1jdFIsIC0tY250W2FbY3RSXV07CgogICAgICAgIHdoaWxlIChjdFIgPD0gcikgKytjbnRbYVtjdFJdXSwgY3RSKys7CgogICAgICAgIEFuc1tzdHRdID0gY250W3hdOwoKICAgIH0KICAgIAogICAgRk9SKGksIDEsIFEpCiAgICAgICAgY291dCA8PCBBbnNbaV0gPDwgZW5kbDsKCn0KClRpMjBfbnRzb24gewovLyAgICBmcmVvcGVuKFRBU0siLklOUCIsInIiLHN0ZGluKTsKLy8gICAgZnJlb3BlbihUQVNLIi5PVVQiLCJ3IixzdGRvdXQpOwogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaW50IFQgPSAxOwovLyAgICBjaW4gPj4gVDsKICAgIHdoaWxlIChUIC0tICkgewogICAgICAgIFJlYWRfSW5wdXQoKTsKICAgICAgICBTb2x2ZSgpOwogICAgfQp9CgoK