# 想定誤答2: l の下限 (k <= l) を忘れている # # 「l の上限は 5k+2o」だけを実装し、対称な条件である # 「j の上限は 5k+2o」= 「l の下限は k」を落としている。 import sys def solve(l, j, o): s = l + j - 2 * o if s < 0 or s % 6: return False k = s // 6 if l > 5 * k + 2 * o: # 上限だけチェック return False if o == 0 and (l % 2 or j % 2): return False return True def main(): data = sys.stdin.buffer.read().split() t = int(data[0]) out = [] idx = 1 for _ in range(t): l = int(data[idx]); j = int(data[idx + 1]); o = int(data[idx + 2]) idx += 3 out.append("Yes" if solve(l, j, o) else "No") sys.stdout.write("\n".join(out) + "\n") main() # ------------------------------------------------------------------ # Hack ケース # # 1 # 0 6 0 # # 正解: No / この解法: Yes # # k = 1、l = 0 <= 5 かつ l, j ともに偶数なので Yes になるが、 # l >= k = 1 が必要 (対称に見ると j = 6 > 5k+2o = 5)。 # 実際 3x8 を J 字 6 個だけで敷き詰めることはできない。 # # 同種のケース: 1 13 1 / 0 12 0 / 2 22 0 # ------------------------------------------------------------------