Problem:
Is it a Right Triangle?

Write a program which judges wheather given length of three side form a right triangle. Print "YES" if the given sides (integers) form a right triangle, "NO" if not so.

Input

Input consists of several data sets. In the first line, the number of data set, N is given. Then, N lines follow, each line corresponds to a data set. A data set consists of three integers separated by a single space.

Constraints

1 ≤ length of the side ≤ 1,000

N ≤ 1,000

Output

For each data set, print "YES" or "NO".

Sample Input

3
4 3 5
4 3 6
8 8 8

Output for the Sample Input

YES
NO
NO

Solution in JAVA (judge verdict: Wrong Answer)

import java.util.*;
import java.io.*;
public class Main {
    static Scanner sc = new Scanner(System.in);
    static InputStreamReader reader = new InputStreamReader(System.in);
    static int n, a, b, c;//prepare "number" and "Edge".
    static int A,B,C;
    public static void main(String[] args) {
	
	read();
	
    }
    
    static boolean read(){
	//try{
	//	System.out.println("Input the nummber.");
	    n = sc.nextInt();//read "number".
	    int i;
	    for(i = 0; i < n; i++){
		a = sc.nextInt();//read "edge".
		b = sc.nextInt();//read "edge".
		c = sc.nextInt();//read "edge".
		
		if(a != 0 && b != 0 && c!= 0){
		    A = a * a;//calculate the power of edge of A.
		    B = b * b;//calculate the power of edge of B.
		    C = c * c;//calculate the power of edge of C.
		    if(A == B + C){//compare
			System.out.println("YES");//output
		    }
		    if(B == A + C){//compare
			System.out.println("YES");//output
		    }
		    if(C == A + B){//compare
			System.out.println("YES");//output
		    }else{
			System.out.println("NO");
		    }
		}//end of if
		    
		if(a == 0 || b == 0 || c == 0){
		    System.out.println("NO");
		}//end of if
	    }//end of for
	    return true;
    }//brock of read()
}//brock of Main()