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: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s;

		int n;

		try {
			s = br.readLine();
			n = Integer.parseInt(s);

			int[][] tri = new int[n][3];
			int i, j;
			i = j = 0;

			while (null != (s = br.readLine())) {
				Scanner sc = new Scanner(s);
				j = 0;
				while (sc.hasNext()) {
					tri[i][j] = sc.nextInt();
					j++;
				}
				Arrays.sort(tri[i]);
				i++;
			}

			//
			for (i = 0; i < n; i++) {
				int a, b, c;
				a = tri[i][0];
				b = tri[i][1];
				c = tri[i][2];
				if (c * c == a * a + b * b) {
					System.out.println("YES");
				} else {
					System.out.println("NO");
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}