#include <iostream>
#include <array>
#include <algorithm>
using namespace std;
bool is_right_triangle(array<int, 3> sides) {
decltype(sides) squares;
auto square = [](int x){
return x*x;
};
sort(begin(sides), end(sides));
transform(begin(sides), end(sides), begin(squares), square);
return squares[0]+squares[1] == squares[2];
}
int main() {
cout << boolalpha;
cout
<< is_right_triangle({3, 4, 5}) << endl
<< is_right_triangle({6, 10, 8}) << endl
<< is_right_triangle({75, 21, 72}) << endl
<< endl;
cout
<< is_right_triangle({13, 4, 5}) << endl
<< is_right_triangle({16, 10, 8}) << endl
<< is_right_triangle({175, 21, 72}) << endl
<< endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGlzX3JpZ2h0X3RyaWFuZ2xlKGFycmF5PGludCwgMz4gc2lkZXMpIHsKCWRlY2x0eXBlKHNpZGVzKSBzcXVhcmVzOwoJCglhdXRvIHNxdWFyZSA9IFtdKGludCB4KXsgCgkJcmV0dXJuIHgqeDsKCX07CgkKCXNvcnQoYmVnaW4oc2lkZXMpLCBlbmQoc2lkZXMpKTsKCXRyYW5zZm9ybShiZWdpbihzaWRlcyksIGVuZChzaWRlcyksIGJlZ2luKHNxdWFyZXMpLCBzcXVhcmUpOwoJCglyZXR1cm4gc3F1YXJlc1swXStzcXVhcmVzWzFdID09IHNxdWFyZXNbMl07Cn0KCmludCBtYWluKCkgewoJY291dCA8PCBib29sYWxwaGE7CgkKCWNvdXQKCQk8PCBpc19yaWdodF90cmlhbmdsZSh7MywgNCwgNX0pIDw8IGVuZGwKCQk8PCBpc19yaWdodF90cmlhbmdsZSh7NiwgMTAsIDh9KSA8PCBlbmRsCgkJPDwgaXNfcmlnaHRfdHJpYW5nbGUoezc1LCAyMSwgNzJ9KSA8PCBlbmRsCgkJPDwgZW5kbDsKCQkKCWNvdXQKCQk8PCBpc19yaWdodF90cmlhbmdsZSh7MTMsIDQsIDV9KSA8PCBlbmRsCgkJPDwgaXNfcmlnaHRfdHJpYW5nbGUoezE2LCAxMCwgOH0pIDw8IGVuZGwKCQk8PCBpc19yaWdodF90cmlhbmdsZSh7MTc1LCAyMSwgNzJ9KSA8PCBlbmRsCgkJPDwgZW5kbDsKCXJldHVybiAwOwp9