「牛の舌って薄いんですね」

蒼樹うめ『ひだまりスケッチ』第 6 巻「一頭から一枚」より

ふみをチャレンジ[4]

三日坊主打破。ロックマンエグゼ2もついに最終話に突入して…ちょっとゲームしすぎかな。明日から大学だというのに。朝起きられるかなあ…

答案

C
#include <stdio.h>

int main() {
  int n, a, b, c;
  
  scanf("%d", &n);
  
  while(n > 0) {
    scanf("%d %d %d", &a, &b, &c);
    
    a *= a;
    b *= b;
    c *= c;
    
    if(a == b + c || b == c + a || c == a + b) {
      printf("YES\n");
    } else {
      printf("NO\n");
    }
    
    n--;
  }
  
  return 0;
}

反省

a2 + b2 = c2を利用すればいいとはすぐ分かったけど、斜辺をどうやって判定しようか…と考えてたら、なるほど、全部ORで繋いじゃったらいいんだ。ソートしたり最大の値を探すことも考えたけど、この方法が一番スマートだね。