#include <bits/stdc++.h>
using namespace std;
int n, Q;
unsigned long long p1 = 233, p2 = 19260817;
unsigned long long q1 = 2147483647, q2 = 1000000007;
unsigned long long pw1[201111], pw2[201111];
struct Hash {
  int cnt;
  unsigned long long v1, v2;
  Hash() {
    cnt = 0;
    v1 = v2 = 0;
  }
  bool operator==(const Hash &a) const {
    return cnt == a.cnt && v1 == a.v1 && v2 == a.v2;
  }
  void init(char x, int p) {
    if (x == '0') {
      v1 = v2 = (p + 1);
      cnt = 1;
    } else {
      v1 = v2 = 0;
      cnt = 0;
    }
  }
};
Hash add(const Hash &x, const Hash &y) {
  Hash ret;
  ret.v1 = (x.v1 * pw1[y.cnt] + y.v1) % q1;
  ret.v2 = (x.v2 * pw2[y.cnt] + y.v2) % q2;
  ret.cnt = x.cnt + y.cnt;
  return ret;
}
struct node {
  int l, r;
  Hash v0, v1;
} t[201111 * 2];
int tcnt = 0;
char s[201111];
int build(int l, int r) {
  int x = ++tcnt;
  if (l < r) {
    int mid = (l + r) / 2;
    t[x].l = build(l, mid);
    t[x].r = build(mid + 1, r);
    t[x].v0 = add(t[t[x].l].v0, t[t[x].r].v0);
    t[x].v1 = add(t[t[x].l].v1, t[t[x].r].v1);
  } else {
    t[x].v0.init(s[l], l & 1), t[x].v1.init(s[l], ~l & 1);
  }
  return x;
}
pair<Hash, Hash> qry(int x, int l, int r, int ql, int qr) {
  if (l == ql && r == qr) return {t[x].v0, t[x].v1};
  int mid = (l + r) / 2;
  if (qr <= mid) return qry(t[x].l, l, mid, ql, qr);
  if (ql > mid) return qry(t[x].r, mid + 1, r, ql, qr);
  pair<Hash, Hash> r1 = qry(t[x].l, l, mid, ql, mid),
                   r2 = qry(t[x].r, mid + 1, r, mid + 1, qr);
  r1.first = add(r1.first, r2.first);
  r1.second = add(r1.second, r2.second);
  return r1;
}
int cnt[201111];
int main() {
  scanf("%d", &n);
  scanf("%s", s + 1);
  pw1[0] = pw2[0] = 1;
  for (int i = 1; i <= n; i++) pw1[i] = pw1[i - 1] * p1 % q1;
  for (int i = 1; i <= n; i++) pw2[i] = pw2[i - 1] * p2 % q2;
  build(1, n);
  scanf("%d", &Q);
  for (int i = 1; i <= Q; i++) {
    int l, r, len;
    scanf("%d%d%d", &l, &r, &len);
    pair<Hash, Hash> u = qry(1, 1, n, l, l + len - 1);
    pair<Hash, Hash> v = qry(1, 1, n, r, r + len - 1);
    puts((l & 1 ? u.first : u.second) == (r & 1 ? v.first : v.second) ? "YES"
                                                                      : "NO");
  }
}
