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 C# (judge verdict: Accepted)

using System;
using System.Collections;
using System.Collections.Generic;

public class Example3
{
	public static void Main ()
	{
		int count = int.Parse( Console.ReadLine ());
		List <string> triangleParameterList = new List<string> ();

		for (int i = 0; i < count; i++) {

			string tempStr = Console.ReadLine ();
			triangleParameterList.Add (tempStr);
		}

		foreach (var t in triangleParameterList) {

			string[] triangleParameterStr = t.Split (' ');
			int[] triangleParameter = new int[3];

			for (int j = 0; j < 3; j++){
				triangleParameter [j] = int.Parse( triangleParameterStr [j]);
			}

			if (isTriangle (triangleParameter)) {
				Console.WriteLine ("YES");
			} else {
				Console.WriteLine ("NO");
			}

		}

	}

	public static bool isTriangle(int[] triangleParameter){



		Array.Sort (triangleParameter);

		int result1 = triangleParameter[0]*triangleParameter[0] + triangleParameter[1]*triangleParameter[1];
		int result2 = triangleParameter [2] * triangleParameter [2];
		           
		if (result1 == result2) {
			return true;
		} else {
			return false;
		}

	}
}