#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  bool ans;
  long long n, k, d1, d2, tmp, a, b, c;
  scanf("%d", &t);
  while (t--) {
    scanf("%I64d%I64d%I64d%I64d", &n, &k, &d1, &d2);
    if (n % 3 != 0) {
      printf("no\n");
      continue;
    }
    ans = false;
    do {
      tmp = k - 2 * d1 - d2;
      if (tmp % 3 != 0) break;
      a = tmp / 3;
      b = a + d1;
      c = a + d1 + d2;
      if (a < 0 || b < 0 || c < 0) break;
      if (max(a, max(b, c)) <= n / 3) ans = true;
    } while (false);
    do {
      tmp = k - 2 * d1 + d2;
      if (tmp % 3 != 0) break;
      a = tmp / 3;
      b = a + d1;
      c = a + d1 - d2;
      if (a < 0 || b < 0 || c < 0) break;
      if (max(a, max(b, c)) <= n / 3) ans = true;
    } while (false);
    do {
      tmp = k + 2 * d1 - d2;
      if (tmp % 3 != 0) break;
      a = tmp / 3;
      b = a - d1;
      c = a - d1 + d2;
      if (a < 0 || b < 0 || c < 0) break;
      if (max(a, max(b, c)) <= n / 3) ans = true;
    } while (false);
    do {
      tmp = k + 2 * d1 + d2;
      if (tmp % 3 != 0) break;
      a = tmp / 3;
      b = a - d1;
      c = a - d1 - d2;
      if (a < 0 || b < 0 || c < 0) break;
      if (max(a, max(b, c)) <= n / 3) ans = true;
    } while (false);
    if (ans) {
      printf("yes\n");
    } else {
      printf("no\n");
    }
  }
  return 0;
}
