#include <bits/stdc++.h>
using namespace std;
int n, tot, m, l, r, len;
char c;
int po[400005], ha[400005], ys[400005], fi[400005], la[400005];
int s[400005], id[400005], t[400005], sum[400005], it[400005];
struct pi {
  int num, hai;
};
pi find(int li, int ri) {
  int f1 = 0, f2 = 0, lp = li, rp = ri;
  pi tmp;
  if (it[li] == it[ri]) {
    if (s[li] == 1) {
      if ((ri - li + 1) % 2 == 1) {
        tmp.hai = (long long)2 * po[2 * n] % 1000000007;
      } else
        tmp.hai = 0;
      tmp.num = (ri - li + 1) / 2;
    } else {
      tmp.num = 0;
      tmp.hai = (long long)(ha[ys[ri]] - ha[ys[li] - 1] + 1000000007) %
                1000000007 * po[2 * n - ys[ri]] % 1000000007;
    }
    return tmp;
  }
  if (s[li] == 1) lp = la[lp] + 1;
  if (s[ri] == 1) rp = fi[rp] - 1;
  if ((lp - li) & 1) f1 = 1;
  if ((ri - rp) & 1) f2 = 1;
  tmp.hai = (long long)(ha[ys[rp]] - ha[ys[lp] - 1] + 1000000007) % 1000000007 *
            po[2 * n - 1 - ys[rp]] % 1000000007;
  tmp.num = sum[rp] - sum[lp];
  tmp.num += (lp - li) / 2;
  tmp.num += (ri - rp) / 2;
  if (f2 == 1)
    tmp.hai = (tmp.hai + (long long)2 * po[2 * n] % 1000000007) % 1000000007;
  else
    tmp.hai = (long long)tmp.hai * po[1] % 1000000007;
  int len = ri - li + 1 - tmp.num * 2;
  if (f1 == 1)
    tmp.hai = (tmp.hai + (long long)2 * po[2 * n - len + 1] % 1000000007) %
              1000000007;
  return tmp;
}
int main() {
  scanf("%d", &n);
  s[0] = -1;
  s[n + 1] = -1;
  for (int i = 1; i <= n; i++) {
    scanf(" %c", &c);
    s[i] = c - '0';
  }
  int tit = 0;
  for (int i = 1; i <= n; i++) {
    if (s[i] != s[i - 1])
      fi[i] = i, tit++;
    else
      fi[i] = fi[i - 1];
    it[i] = tit;
  }
  for (int i = n; i >= 1; i--) {
    if (s[i] != s[i + 1])
      la[i] = i;
    else
      la[i] = la[i + 1];
  }
  po[0] = 1;
  for (int i = 1; i <= 2 * n; i++)
    po[i] = (long long)po[i - 1] * 1500007 % 1000000007;
  for (int i = 1; i <= n; i++) {
    t[++tot] = s[i];
    id[tot] = i;
    if (t[tot] == 1 && t[tot - 1] == 1) tot -= 2, sum[i]++;
    ys[i] = tot;
  }
  for (int i = 1; i <= n; i++) sum[i] += sum[i - 1];
  for (int i = 1; i <= tot; i++)
    ha[i] =
        (ha[i - 1] + (long long)po[i] * (t[i] + 1) % 1000000007) % 1000000007;
  scanf("%d", &m);
  for (int i = 1; i <= m; i++) {
    scanf("%d%d%d", &l, &r, &len);
    pi t1 = find(l, l + len - 1), t2 = find(r, r + len - 1);
    if (t1.hai == t2.hai && t1.num == t2.num)
      puts("Yes");
    else
      puts("No");
  }
  return 0;
}
