← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var q int
	if _, err := fmt.Fscan(in, &q); err != nil {
		return
	}

	for i := 0; i < q; i++ {
		var t int64
		var x, y int
		fmt.Fscan(in, &t, &x, &y)

		k := t - int64(x) - int64(y)
		if k < 0 {
			fmt.Fprintln(out, "NO")
			continue
		}

		var count [120][120]int64
		count[0][0] = k

		for r := 0; r <= x; r++ {
			for c := 0; c <= y; c++ {
				cv := count[r][c]
				if cv > 0 {
					if r < x {
						count[r+1][c] += cv / 2
					}
					if c < y {
						count[r][c+1] += (cv + 1) / 2
					}
				}
			}
		}

		currX, currY := 0, 0
		reached := false
		for currX <= x && currY <= y {
			if currX == x && currY == y {
				reached = true
				break
			}
			if count[currX][currY]%2 == 0 {
				currY++
			} else {
				currX++
			}
		}

		if reached {
			fmt.Fprintln(out, "YES")
		} else {
			fmt.Fprintln(out, "NO")
		}
	}
}