------
## 最终结论
```python
def can_tournament_end_in_draw(n, k, d1, d2):
    # Check if n is divisible by 3 since each team should have the same number of wins
    if n % 3 != 0:
        return "no"
    
    # Calculate the total number of games that need to be won by all teams combined
    total_wins_needed = n // 3
    
    # Try all possible configurations based on given differences
    for x in range(3):
        w1 = (k - d1 - d2) // 3 + x
        w2 = w1 + d1
        w3 = w2 + d2
        
        if w1 >= 0 and w2 >= 0 and w3 >= 0 and (w1 + w2 + w3 == k) and max(w1, w2, w3) <= total_wins_needed:
            return "yes"
        
    return "no"

def main():
    import sys
    input = sys.stdin.read
    data = input().split()
    
    t = int(data[0])
    
    index = 1
    results = []
    
    for _ in range(t):
        n = int(data[index])
        k = int(data[index+1])
        d1 = int(data[index+2])
        d2 = int(data[index+3])
        
        result = can_tournament_end_in_draw(n, k, d1, d2)
        results.append(result)
        
        index += 4
    
    print("\n".join(results))

if __name__ == "__main__":
    main()
```