/C04043 - Tam giác vuông
<Problem>
https://code.ptit.edu.vn/student/question/C04043#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>
#include <limits.h>
#define max(i, j) ((i > j) ? i : j)
#define min(i, j) ((i < j) ? i : j)
int main() {
int t;
scanf("%d", &t);
while (t--) {
int n;
scanf("%d", &n);
long long arr[10000] = { 0 };
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
arr[i] = arr[i] * arr[i];
}
bool check = false;
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
long long tmp = (long long)sqrt(arr[i] + arr[j]);
if (arr[i] + arr[j] == tmp * tmp) {
for (int k = j + 1; k < n; k++) {
if (arr[i] + arr[j] == arr[k]) {
check = true;
break;
}
}
}
if (check) break;
}
if (check) break;
}
if (check) printf("YES");
else printf("NO");
printf("\n");
}
return 0;
}