Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<array>
- #include<math.h>
- class Triangle
- {
- private:
- double l1, l2, l3;
- public:
- inline bool isRightAng()
- {
- return l1 == l2 + l3;
- }
- inline bool isRectangle(Triangle A)
- {
- return l1 == A.l1 && isRightAng() && A.isRightAng();
- }
- Triangle(std::array<int, 6> &arr)
- {
- l1 = abs((arr[0] - arr[2]) * (arr[0] - arr[2]) + (arr[1] - arr[3]) * (arr[1] - arr[3]));
- l2 = abs((arr[2] - arr[4]) * (arr[2] - arr[4]) + (arr[3] - arr[5]) * (arr[3] - arr[5]));
- l3 = abs((arr[0] - arr[4]) * (arr[0] - arr[4]) + (arr[1] - arr[5]) * (arr[1] - arr[5]));
- if (l1 < l2) std::swap(l1, l2);
- if (l1 < l3) std::swap(l1, l3);
- if (l2 < l3) std::swap(l2, l3);
- }
- Triangle(int a, int b, int c, int d, int e, int f)
- {
- l1 = abs((a - c) * (a - c) + (b - d) * (b - d));
- l2 = abs((c - e) * (c - e) + (d - f) * (d - f));
- l3 = abs((a - e) * (a - e) + (b - f) * (b - f));
- if (l1 < l2) std::swap(l1, l2);
- if (l1 < l3) std::swap(l1, l3);
- if (l2 < l3) std::swap(l2, l3);
- }
- };
- /*
- void MegaGoogleUnitTest()
- {
- std::cout << "1. " << Triangle(0, 0, 10, 0, 0, 12).isRectangle(Triangle(10, 10, 22, 10, 10, 20)) << std::endl;
- std::cout << "2. " << Triangle(0, 0, 10, 0, 0, 15).isRectangle(Triangle(10, 10, 24, 0, 0, 21)) << std::endl;
- std::cout << "3. " << Triangle(1, 2, 7, 9, -6, 8).isRectangle(Triangle(1, 2, 7, 9, -6, 8)) << std::endl;
- std::cout << "4. " << Triangle(1, 2, 7, 9, -6, 8).isRectangle(Triangle(7, 9, 1, 2, -6, 8)) << std::endl;
- std::cout << "5. " << Triangle(1, 2, 7, 9, -6, 8).isRectangle(Triangle(-7, -9, -1, -2, 6, -8)) << std::endl;
- std::cout << "6. " << Triangle(1, 2, 7, 9, -6, 9).isRectangle(Triangle(1, 2, 7, 9, -6, 9)) << std::endl;
- std::cout << "7. " << Triangle(2, 2, 7, 9, -6, 8).isRectangle(Triangle(7, 9, 2, 2, -6, 8)) << std::endl;
- std::cout << "8. " << Triangle(2, 2, 7, 9, -6, 8).isRectangle(Triangle(-7, -9, -2, -2, 6, -8)) << std::endl;
- std::cout << "9. " << Triangle(100000, 200000, 700000, 900000, -600000, 900000).isRectangle(Triangle(100000, 200000, 700000, 900000, -600000, 900000)) << std::endl;
- std::cout << "10. " << Triangle(200000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(700000, 900000, 200000, 200000, -600000, 800000)) << std::endl;
- std::cout << "11. " << Triangle(200000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(-700000, -900000, -200000, -200000, 600000, -800000)) << std::endl;
- std::cout << "12. " << Triangle(100000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(100000, 200000, 700000, 900000, -600000, 800000)) << std::endl;
- std::cout << "13. " << Triangle(100000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(700000, 900000, 100000, 200000, -600000, 800000)) << std::endl;
- std::cout << "14. " << Triangle(100000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(-700000, -900000, -100000, -200000, 600000, -800000)) << std::endl;
- }
- */
- int main()
- {
- int a1, a2, a3, a4, a5, a6,
- b1, b2, b3, b4, b5, b6;
- std::cin >> a1 >> a2 >> a3 >> a4 >> a5 >> a6;
- std::cin >> b1 >> b2 >> b3 >> b4 >> b5 >> b6;
- if (Triangle(a1, a2, a3, a4, a5, a6).isRectangle(Triangle(b1, b2, b3, b4, b5, b6))) std::cout << "YES" << std::endl;
- else std::cout << "NO";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement