Advertisement
EgorYankovsky

PZ5PV

Jun 13th, 2022
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.41 KB | None | 0 0
  1. #include<iostream>
  2. #include<array>
  3. #include<math.h>
  4.  
  5. class Triangle
  6. {
  7. private:
  8.     double l1, l2, l3;
  9. public:
  10.     inline bool isRightAng()
  11.     {
  12.         return l1 == l2 + l3;
  13.     }
  14.     inline bool isRectangle(Triangle A)
  15.     {
  16.         return l1 == A.l1 && isRightAng() && A.isRightAng();
  17.     }
  18.     Triangle(std::array<int, 6> &arr)
  19.     {
  20.         l1 = abs((arr[0] - arr[2]) * (arr[0] - arr[2]) + (arr[1] - arr[3]) * (arr[1] - arr[3]));
  21.         l2 = abs((arr[2] - arr[4]) * (arr[2] - arr[4]) + (arr[3] - arr[5]) * (arr[3] - arr[5]));
  22.         l3 = abs((arr[0] - arr[4]) * (arr[0] - arr[4]) + (arr[1] - arr[5]) * (arr[1] - arr[5]));
  23.         if (l1 < l2) std::swap(l1, l2);
  24.         if (l1 < l3) std::swap(l1, l3);
  25.         if (l2 < l3) std::swap(l2, l3);
  26.     }
  27.     Triangle(int a, int b, int c, int d, int e, int f)
  28.     {
  29.         l1 = abs((a - c) * (a - c) + (b - d) * (b - d));
  30.         l2 = abs((c - e) * (c - e) + (d - f) * (d - f));
  31.         l3 = abs((a - e) * (a - e) + (b - f) * (b - f));
  32.         if (l1 < l2) std::swap(l1, l2);
  33.         if (l1 < l3) std::swap(l1, l3);
  34.         if (l2 < l3) std::swap(l2, l3);
  35.     }
  36. };
  37. /*
  38. void MegaGoogleUnitTest()
  39. {
  40.     std::cout << "1.  " << Triangle(0, 0, 10, 0, 0, 12).isRectangle(Triangle(10, 10, 22, 10, 10, 20)) << std::endl;
  41.     std::cout << "2.  " << Triangle(0, 0, 10, 0, 0, 15).isRectangle(Triangle(10, 10, 24, 0, 0, 21)) << std::endl;
  42.     std::cout << "3.  " << Triangle(1, 2, 7, 9, -6, 8).isRectangle(Triangle(1, 2, 7, 9, -6, 8)) << std::endl;
  43.     std::cout << "4.  " << Triangle(1, 2, 7, 9, -6, 8).isRectangle(Triangle(7, 9, 1, 2, -6, 8)) << std::endl;
  44.     std::cout << "5.  " << Triangle(1, 2, 7, 9, -6, 8).isRectangle(Triangle(-7, -9, -1, -2, 6, -8)) << std::endl;
  45.     std::cout << "6.  " << Triangle(1, 2, 7, 9, -6, 9).isRectangle(Triangle(1, 2, 7, 9, -6, 9)) << std::endl;
  46.     std::cout << "7.  " << Triangle(2, 2, 7, 9, -6, 8).isRectangle(Triangle(7, 9, 2, 2, -6, 8)) << std::endl;
  47.     std::cout << "8.  " << Triangle(2, 2, 7, 9, -6, 8).isRectangle(Triangle(-7, -9, -2, -2, 6, -8)) << std::endl;
  48.     std::cout << "9.  " << Triangle(100000, 200000, 700000, 900000, -600000, 900000).isRectangle(Triangle(100000, 200000, 700000, 900000, -600000, 900000)) << std::endl;
  49.     std::cout << "10. " << Triangle(200000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(700000, 900000, 200000, 200000, -600000, 800000)) << std::endl;
  50.     std::cout << "11. " << Triangle(200000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(-700000, -900000, -200000, -200000, 600000, -800000)) << std::endl;
  51.     std::cout << "12. " << Triangle(100000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(100000, 200000, 700000, 900000, -600000, 800000)) << std::endl;
  52.     std::cout << "13. " << Triangle(100000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(700000, 900000, 100000, 200000, -600000, 800000)) << std::endl;
  53.     std::cout << "14. " << Triangle(100000, 200000, 700000, 900000, -600000, 800000).isRectangle(Triangle(-700000, -900000, -100000, -200000, 600000, -800000)) << std::endl;
  54.    
  55. }
  56. */
  57.  
  58. int main()
  59. {
  60.     int a1, a2, a3, a4, a5, a6,
  61.         b1, b2, b3, b4, b5, b6;
  62.  
  63.     std::cin >> a1 >> a2 >> a3 >> a4 >> a5 >> a6;
  64.     std::cin >> b1 >> b2 >> b3 >> b4 >> b5 >> b6;
  65.     if (Triangle(a1, a2, a3, a4, a5, a6).isRectangle(Triangle(b1, b2, b3, b4, b5, b6))) std::cout << "YES" << std::endl;
  66.     else std::cout << "NO";
  67.    return 0;
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement