#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7, inf = 1061109567;
const long long infll = 4557430888798830399;
const int N = 2e5 + 5, BASE = 327, ODD = 283, EVEN = 117;
int n, cnt[N], pw[N];
string s;
void add(int &x, int y) {
  x += y;
  if (x >= mod) x -= mod;
}
void rem(int &x, int y) {
  x -= y;
  if (x < 0) x += mod;
}
int mul(int x, int y) { return 1ll * x * y % mod; }
int getCnt(int l, int r) { return cnt[r] - (l ? cnt[l - 1] : 0); }
vector<int> pos0;
struct Hash {
  int h1[N], h2[N];
  void init() {
    for (int i = 0; i < pos0.size(); i++) {
      h1[i] = mul(i ? h1[i - 1] : 0, BASE);
      h2[i] = mul(i ? h2[i - 1] : 0, BASE);
      if (pos0[i] & 1) {
        add(h1[i], ODD);
        add(h2[i], EVEN);
      } else {
        add(h1[i], EVEN);
        add(h2[i], ODD);
      }
    }
  }
  int get1(int l, int r) {
    int ans = h1[r];
    rem(ans, mul(l ? h1[l - 1] : 0, pw[r - l + 1]));
    return ans;
  }
  int get2(int l, int r) {
    int ans = h2[r];
    rem(ans, mul(l ? h2[l - 1] : 0, pw[r - l + 1]));
    return ans;
  }
} h;
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  pw[0] = 1;
  for (int i = 1; i < N; i++) pw[i] = mul(pw[i - 1], BASE);
  cin >> n >> s;
  for (int i = 0; i < n; i++) {
    cnt[i] = (i ? cnt[i - 1] : 0) + (s[i] == '0');
  }
  for (int i = 0; i < n; i++)
    if (s[i] == '0') pos0.push_back(i);
  h.init();
  int q;
  cin >> q;
  while (q--) {
    int l1, l2, len;
    cin >> l1 >> l2 >> len;
    l1--, l2--;
    if (getCnt(l1, l1 + len - 1) != getCnt(l2, l2 + len - 1)) {
      cout << "No\n";
      continue;
    }
    if (pos0.size() == 0) {
      cout << "Yes\n";
      continue;
    }
    int ogl1 = l1, ogl2 = l2;
    int r1 = l1 + len - 1, r2 = l2 + len - 1;
    l1 = lower_bound(pos0.begin(), pos0.end(), l1) - pos0.begin();
    r1 = upper_bound(pos0.begin(), pos0.end(), r1) - pos0.begin() - 1;
    l2 = lower_bound(pos0.begin(), pos0.end(), l2) - pos0.begin();
    r2 = upper_bound(pos0.begin(), pos0.end(), r2) - pos0.begin() - 1;
    int hsh1 = 0, hsh2 = 0;
    if (l1 <= r1) {
      if ((pos0[l1] - ogl1) & 1) {
        if (pos0[l1] & 1)
          hsh1 = h.get1(l1, r1);
        else
          hsh1 = h.get2(l1, r1);
      } else {
        if (pos0[l1] & 1)
          hsh1 = h.get2(l1, r1);
        else
          hsh1 = h.get1(l1, r1);
      }
    }
    if (l2 <= r2) {
      if ((pos0[l2] - ogl2) & 1) {
        if (pos0[l2] & 1)
          hsh2 = h.get1(l2, r2);
        else
          hsh2 = h.get2(l2, r2);
      } else {
        if (pos0[l2] & 1)
          hsh2 = h.get2(l2, r2);
        else
          hsh2 = h.get1(l2, r2);
      }
    }
    if (hsh1 == hsh2)
      cout << "Yes\n";
    else
      cout << "No\n";
  }
  return 0;
}
