#include <bits/stdc++.h>
using namespace std;
bool check1(void);
bool check2(void);
bool check3(void);
bool check4(void);
long long test, n, k, d1, d2, p, A[4], remain;
int main() {
  ios::sync_with_stdio(0);
  cin >> test;
  while (test--) {
    cin >> n >> k >> d1 >> d2;
    if (check1() || check2() || check3() || check4())
      cout << "yes" << endl;
    else
      cout << "no" << endl;
  }
  return 0;
}
bool check1(void) {
  p = k - d1 - 2 * d2;
  if (p < 0)
    return false;
  else if (p % 3)
    return false;
  else {
    A[3] = p / 3;
    A[2] = d2 + A[3];
    A[1] = d1 + A[2];
    remain = n - k;
    sort(A + 1, A + 4);
    if (A[1] < 0) return false;
    p = A[3] - A[2] + A[3] - A[1];
    if (remain < p)
      return false;
    else {
      remain -= p;
      if (remain % 3)
        return false;
      else
        return true;
    }
  }
}
bool check2(void) {
  p = k - 2 * d1 - d2;
  if (p < 0)
    return false;
  else if (p % 3)
    return false;
  else {
    A[1] = p / 3;
    A[2] = d1 + A[1];
    A[3] = d2 + A[2];
    remain = n - k;
    sort(A + 1, A + 4);
    if (A[1] < 0) return false;
    p = A[3] - A[2] + A[3] - A[1];
    if (remain < p)
      return false;
    else {
      remain -= p;
      if (remain % 3)
        return false;
      else
        return true;
    }
  }
}
bool check3(void) {
  p = k + d1 + d2;
  if (p < 0)
    return false;
  else if (p % 3)
    return false;
  else {
    A[2] = p / 3;
    A[3] = A[2] - d2;
    A[1] = A[2] - d1;
    remain = n - k;
    sort(A + 1, A + 4);
    if (A[1] < 0) return false;
    p = A[3] - A[2] + A[3] - A[1];
    if (remain < p)
      return false;
    else {
      remain -= p;
      if (remain % 3)
        return false;
      else
        return true;
    }
  }
}
bool check4(void) {
  p = k - d1 - d2;
  if (p < 0)
    return false;
  else if (p % 3)
    return false;
  else {
    A[2] = p / 3;
    A[3] = d2 + A[2];
    A[1] = d1 + A[2];
    remain = n - k;
    sort(A + 1, A + 4);
    if (A[1] < 0) return false;
    p = A[3] - A[2] + A[3] - A[1];
    if (remain < p)
      return false;
    else {
      remain -= p;
      if (remain % 3)
        return false;
      else
        return true;
    }
  }
}
