#include <bits/stdc++.h>
using namespace std;
int calc(long long n, long long k, long long a1, long long a2, long long a3) {
  long long sum;
  if (a2 < a3) {
    swap(a2, a3);
  }
  if (a1 < a2) {
    swap(a1, a2);
  }
  if (a2 < a3) {
    swap(a2, a3);
  }
  if (a1 < 0 || a2 < 0 || a3 < 0) {
    return 0;
  }
  sum = a1 - a2 + a1 - a3;
  if (sum > n - k) {
    return 0;
  }
  if ((n - k - sum) % 3 == 0) {
    return 1;
  }
  return 0;
}
int task() {
  long long i, n, k, d1, d2, a1, a2, a3;
  cin >> n;
  ;
  cin >> k;
  ;
  cin >> d1;
  ;
  cin >> d2;
  ;
  a1 = k + 2 * d1 + d2;
  if (a1 % 3 == 0) {
    a1 = a1 / 3;
    a2 = a1 - d1;
    a3 = a2 - d2;
    if (calc(n, k, a1, a2, a3)) {
      return 1;
    }
  }
  a1 = k + 2 * d1 - d2;
  if (a1 % 3 == 0) {
    a1 = a1 / 3;
    a2 = a1 - d1;
    a3 = a2 + d2;
    if (calc(n, k, a1, a2, a3)) {
      return 1;
    }
  }
  a1 = k - 2 * d1 + d2;
  if (a1 % 3 == 0) {
    a1 = a1 / 3;
    a2 = a1 + d1;
    a3 = a2 - d2;
    if (calc(n, k, a1, a2, a3)) {
      return 1;
    }
  }
  a1 = k - 2 * d1 - d2;
  if (a1 % 3 == 0) {
    a1 = a1 / 3;
    a2 = a1 + d1;
    a3 = a2 + d2;
    if (calc(n, k, a1, a2, a3)) {
      return 1;
    }
  }
  return 0;
}
int main(int argc, char const *argv[]) {
  int i, t;
  string yes("yes");
  string no("no");
  cin >> t;
  ;
  for (i = 0; i < t; i++) {
    if (task()) {
      cout << yes << endl;
      ;
    } else {
      cout << no << endl;
      ;
    }
  }
  return 0;
}
