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

let input = ''

process.stdin.resume()
process.stdin.setEncoding('utf8')
process.stdin.on('data', function(chunk) {
  input += chunk
})
process.stdin.on('end', function() {
  input = input.trim().split('\n')
  main()
})

function main() {
  dataset_num = input[0]
  if (dataset_num > 1000) {
    return
  }
  for(i=1; i<input.length; i++) {
    input_line = input[i].split(' ')
    input_line.sort(compareNumbers)
    // console.log(input_line)
    if(0 > input_line[0] || input_line[0] > 1000 ) {
        return
    }
    if(0 > input_line[1] || input_line[1] > 1000 ) {
        return
    }
    if(0 > input_line[2] || input_line[2] > 1000 ) {
        return
    }
    if (Math.pow(input_line[0],2) === Math.pow(input_line[1],2) + Math.pow(input_line[2],2)) {
      console.log('YES')
    } else {
      console.log('NO')
    }
    // console.log(Math.pow(input_line[0],2))
  }
}

function compareNumbers(a, b) {
  return b - a;
}