#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e5 + 5;
int n, q, arr[MAX], sqroot;
vector<int> Block[400];
bool Query(int L, int R, int val) {
int LB = L / sqroot;
int RB = R / sqroot;
int found = 0;
if(LB == RB) {
for(int i = L; i <= R; i++)
found += arr[i] == val;
return found;
}
int tmp = (LB + 1) * sqroot;
for(int i = L; i < tmp; i++)
found += arr[i] == val;
tmp = RB * sqroot;
for(int i = tmp; i <= R; i++)
found += arr[i] == val;
for(int i = LB + 1; i < RB; i++) {
tmp = binary_search(Block[i].begin(), Block[i].end(), val);
found += tmp;
}
return found;
}
int main() {
scanf("%d", &n);
sqroot = sqrt(n);
for(int i = 0; i < n; i++) {
scanf("%d", arr + i);
Block[i / sqroot].push_back(arr[i]);
}
for(int i = 0;i <= sqroot; i++)
sort(Block[i].begin(), Block[i].end());
scanf("%d", &q);
string ans = "";
while(q--) {
int L, R, X;
scanf("%d %d %d", &L, &R, &X);
--L; --R;
ans += Query(L, R, X) ? "1" : "0";
}
cout<<ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYID0gMWU1ICsgNTsKaW50IG4sIHEsIGFycltNQVhdLCBzcXJvb3Q7CnZlY3RvcjxpbnQ+IEJsb2NrWzQwMF07Cgpib29sIFF1ZXJ5KGludCBMLCBpbnQgUiwgaW50IHZhbCkgewogICAgaW50IExCID0gTCAvIHNxcm9vdDsKICAgIGludCBSQiA9IFIgLyBzcXJvb3Q7CiAgICBpbnQgZm91bmQgPSAwOwoKICAgIGlmKExCID09IFJCKSB7CiAgICAgICAgZm9yKGludCBpID0gTDsgaSA8PSBSOyBpKyspCiAgICAgICAgICAgIGZvdW5kICs9IGFycltpXSA9PSB2YWw7CiAgICAgICAgcmV0dXJuIGZvdW5kOwogICAgfQoKICAgIGludCB0bXAgPSAoTEIgKyAxKSAqIHNxcm9vdDsKICAgIGZvcihpbnQgaSA9IEw7IGkgPCB0bXA7IGkrKykKICAgICAgICBmb3VuZCArPSBhcnJbaV0gPT0gdmFsOwoKICAgIHRtcCA9IFJCICogc3Fyb290OwogICAgZm9yKGludCBpID0gdG1wOyBpIDw9IFI7IGkrKykKICAgICAgICBmb3VuZCArPSBhcnJbaV0gPT0gdmFsOwoKICAgIGZvcihpbnQgaSA9IExCICsgMTsgaSA8IFJCOyBpKyspIHsKICAgICAgICB0bXAgPSBiaW5hcnlfc2VhcmNoKEJsb2NrW2ldLmJlZ2luKCksIEJsb2NrW2ldLmVuZCgpLCB2YWwpOwogICAgICAgIGZvdW5kICs9ICB0bXA7CiAgICB9CiAgICByZXR1cm4gZm91bmQ7Cn0KCmludCBtYWluKCkgewogICAgc2NhbmYoIiVkIiwgJm4pOwoKICAgIHNxcm9vdCA9IHNxcnQobik7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgc2NhbmYoIiVkIiwgYXJyICsgaSk7CiAgICAgICAgQmxvY2tbaSAvIHNxcm9vdF0ucHVzaF9iYWNrKGFycltpXSk7CiAgICB9CgogICAgZm9yKGludCBpID0gMDtpIDw9IHNxcm9vdDsgaSsrKQogICAgICAgIHNvcnQoQmxvY2tbaV0uYmVnaW4oKSwgQmxvY2tbaV0uZW5kKCkpOwoKICAgIHNjYW5mKCIlZCIsICZxKTsKICAgIHN0cmluZyBhbnMgPSAiIjsKICAgIHdoaWxlKHEtLSkgewogICAgICAgIGludCBMLCBSLCBYOwogICAgICAgIHNjYW5mKCIlZCAlZCAlZCIsICZMLCAmUiwgJlgpOwogICAgICAgIC0tTDsgLS1SOwogICAgICAgIGFucyArPSBRdWVyeShMLCBSLCBYKSA/ICIxIiA6ICIwIjsKICAgIH0KICAgIGNvdXQ8PGFuczsKICAgIHJldHVybiAwOwp9