#include <bits/stdc++.h>
using namespace std;
vector<bool> ans;
bool ok(long long n, long long k, long long d1, long long d2) {
  if ((k - (d2 + 2 * d1)) >= 0 && (k - (d2 + 2 * d1)) % 3 == 0 &&
      (n - (k + d1 + 2 * d2)) >= 0 && (n - (k + d1 + 2 * d2)) % 3 == 0)
    return true;
  if (k + d1 + d2 >= 0 && (k + d1 + d2) % 3 == 0 &&
      ((k + d1 + d2) / 3) - max(d1, d2) >= 0 && (n - (k + d1 + d2)) >= 0 &&
      (n - (k + d1 + d2)) % 3 == 0)
    return true;
  if (k - d1 - d2 >= 0 && (k - d1 - d2) % 3 == 0 &&
      (n - (k + min(d1, d2) + 2 * (max(d1, d2) - min(d1, d2)))) >= 0 &&
      (n - (k + min(d1, d2) + 2 * (max(d1, d2) - min(d1, d2)))) % 3 == 0)
    return true;
  if (k - (2 * d2 + d1) >= 0 && (k - (2 * d2 + d1)) % 3 == 0 &&
      (n - (k + d2 + 2 * d1)) >= 0 && (n - (k + d2 + 2 * d1)) % 3 == 0)
    return true;
  return false;
}
int main() {
  long long t, n, k, d1, d2;
  cin >> t;
  for (int i = 0; i < t; i++) {
    cin >> n >> k >> d1 >> d2;
    if (ok(n, k, d1, d2))
      ans.push_back(1);
    else
      ans.push_back(0);
  }
  for (int i = 0; i < ans.size(); i++) {
    if (ans[i] == 0)
      printf("no \n");
    else
      printf("yes \n");
  }
  return 0;
}
