#include <bits/stdc++.h>
using namespace std;
bool bs(long long n, long long k, long long d1, long long d2, long long sign1,
        long long sign2) {
  long long lbound =
      -min(min(0LL, d1 * sign1), min(0LL, d1 * sign1 + d2 * sign2));
  long long rbound =
      n / 3LL - max(max(0LL, d1 * sign1), max(0LL, d1 * sign1 + d2 * sign2)) +
      1LL;
  while (rbound - lbound > 1LL) {
    long long a = (rbound + lbound) / 2LL;
    long long b = a + sign1 * d1;
    long long c = b + sign2 * d2;
    if (a + b + c > k) {
      rbound = a;
    } else {
      lbound = a;
    }
  }
  if (rbound <= lbound) return false;
  long long a = lbound;
  long long b = a + sign1 * d1;
  long long c = b + sign2 * d2;
  return a + b + c == k;
}
bool f(long long n, long long k, long long d1, long long d2) {
  if (n % 3 != 0) return false;
  return bs(n, k, d1, d2, 1, 1) || bs(n, k, d1, d2, -1, -1) ||
         bs(n, k, d1, d2, -1, 1) || bs(n, k, d1, d2, 1, -1);
}
int main() {
  int t;
  cin >> t;
  for (int i = 0; i < t; ++i) {
    long long n, k, d1, d2;
    cin >> n >> k >> d1 >> d2;
    cout << (f(n, k, d1, d2) ? "yes\n" : "no\n");
  }
  return 0;
}
