Statistics

Problem Statement for "Tetrahedron"

Problem Statement

You are given pairwise distances between four hypothetical points. You need to return "YES" if there exist four points in space with such distances between them, and "NO" otherwise (all quotes for clarity only).

The distances are given as a String[] d, each element of which is a single-space separated list of integers. The j-th integer of the i-th element of d gives the distance between the i-th and j-th points.

Definition

Class:
Tetrahedron
Method:
exists
Parameters:
String[]
Returns:
String
Method signature:
String exists(String[] d)
(be sure your method is public)

Constraints

  • d will contain exactly 4 elements.
  • Each element of d will contain exactly 4 integers, separated by single spaces.
  • Each integer in d will be between 0 and 10, inclusive, and contain no extra leading zeroes.
  • The i-th integer of the i-th element of d will be 0.
  • The j-th integer of the i-th element of d will be equal to the i-th integer of the j-th element of d.
  • The j-th integer of the i-th element of d will be between 1 and 10, inclusive, when i is not equal to j.

Examples

  1. {"0 1 1 1", "1 0 1 1", "1 1 0 1", "1 1 1 0"}

    Returns: "YES"

    Just a regular tetrahedron.

  2. {"0 1 2 3", "1 0 1 2", "2 1 0 1", "3 2 1 0"}

    Returns: "YES"

    Four points on a single line.

  3. {"0 1 2 4", "1 0 1 2", "2 1 0 1", "4 2 1 0"}

    Returns: "NO"

    The first and last points are too far away.

  4. {"0 2 2 1","2 0 2 2","2 2 0 2","1 2 2 0"}

    Returns: "YES"

  5. {"0 2 2 1","2 0 2 1","2 2 0 2","1 1 2 0"}

    Returns: "NO"

  6. {"0 2 2 2","2 0 1 2","2 1 0 2","2 2 2 0"}

    Returns: "YES"

  7. {"0 2 2 2","2 0 1 1","2 1 0 2","2 1 2 0"}

    Returns: "NO"

  8. {"0 2 1 1","2 0 2 2","1 2 0 1","1 2 1 0"}

    Returns: "YES"

  9. {"0 2 1 1","2 0 1 2","1 1 0 1","1 2 1 0"}

    Returns: "NO"

  10. {"0 1 1 1","1 0 1 1","1 1 0 1","1 1 1 0"}

    Returns: "YES"

  11. {"0 1 1 1","1 0 1 1","1 1 0 2","1 1 2 0"}

    Returns: "NO"

  12. {"0 1 1 1","1 0 1 1","1 1 0 1","1 1 1 0"}

    Returns: "YES"

  13. {"0 1 1 1","1 0 1 1","1 1 0 2","1 1 2 0"}

    Returns: "NO"

  14. {"0 1 1 1","1 0 1 1","1 1 0 1","1 1 1 0"}

    Returns: "YES"

  15. {"0 1 1 1","1 0 2 1","1 2 0 1","1 1 1 0"}

    Returns: "NO"

  16. {"0 1 2 2","1 0 2 2","2 2 0 3","2 2 3 0"}

    Returns: "YES"

  17. {"0 1 1 2","1 0 2 2","1 2 0 3","2 2 3 0"}

    Returns: "NO"

  18. {"0 2 3 2","2 0 2 2","3 2 0 3","2 2 3 0"}

    Returns: "YES"

  19. {"0 2 3 2","2 0 1 2","3 1 0 3","2 2 3 0"}

    Returns: "NO"

  20. {"0 3 3 2","3 0 1 2","3 1 0 2","2 2 2 0"}

    Returns: "YES"

  21. {"0 3 3 1","3 0 1 2","3 1 0 2","1 2 2 0"}

    Returns: "NO"

  22. {"0 2 3 2","2 0 3 1","3 3 0 3","2 1 3 0"}

    Returns: "YES"

  23. {"0 3 3 2","3 0 3 1","3 3 0 3","2 1 3 0"}

    Returns: "NO"

  24. {"0 2 3 1","2 0 1 1","3 1 0 2","1 1 2 0"}

    Returns: "YES"

  25. {"0 2 3 1","2 0 2 1","3 2 0 2","1 1 2 0"}

    Returns: "NO"

  26. {"0 1 3 2","1 0 3 2","3 3 0 2","2 2 2 0"}

    Returns: "YES"

  27. {"0 1 3 3","1 0 3 2","3 3 0 2","3 2 2 0"}

    Returns: "NO"

  28. {"0 2 3 3","2 0 3 2","3 3 0 2","3 2 2 0"}

    Returns: "YES"

  29. {"0 1 3 3","1 0 3 2","3 3 0 2","3 2 2 0"}

    Returns: "NO"

  30. {"0 2 4 2","2 0 3 2","4 3 0 3","2 2 3 0"}

    Returns: "YES"

  31. {"0 1 4 2","1 0 3 2","4 3 0 3","2 2 3 0"}

    Returns: "NO"

  32. {"0 3 3 1","3 0 3 3","3 3 0 3","1 3 3 0"}

    Returns: "YES"

  33. {"0 3 2 1","3 0 3 3","2 3 0 3","1 3 3 0"}

    Returns: "NO"

  34. {"0 3 3 4","3 0 2 3","3 2 0 2","4 3 2 0"}

    Returns: "YES"

  35. {"0 3 3 4","3 0 2 4","3 2 0 2","4 4 2 0"}

    Returns: "NO"

  36. {"0 3 1 4","3 0 2 1","1 2 0 3","4 1 3 0"}

    Returns: "YES"

  37. {"0 3 1 4","3 0 2 2","1 2 0 3","4 2 3 0"}

    Returns: "NO"

  38. {"0 2 2 2","2 0 3 3","2 3 0 3","2 3 3 0"}

    Returns: "YES"

  39. {"0 2 2 2","2 0 3 4","2 3 0 3","2 4 3 0"}

    Returns: "NO"

  40. {"0 5 4 2","5 0 1 3","4 1 0 2","2 3 2 0"}

    Returns: "YES"

  41. {"0 5 3 2","5 0 1 3","3 1 0 2","2 3 2 0"}

    Returns: "NO"

  42. {"0 2 3 5","2 0 2 4","3 2 0 3","5 4 3 0"}

    Returns: "YES"

  43. {"0 2 2 5","2 0 2 4","2 2 0 3","5 4 3 0"}

    Returns: "NO"

  44. {"0 3 1 3","3 0 3 4","1 3 0 3","3 4 3 0"}

    Returns: "YES"

  45. {"0 3 1 3","3 0 3 4","1 3 0 2","3 4 2 0"}

    Returns: "NO"

  46. {"0 4 2 2","4 0 3 3","2 3 0 1","2 3 1 0"}

    Returns: "YES"

  47. {"0 5 2 2","5 0 3 3","2 3 0 1","2 3 1 0"}

    Returns: "NO"

  48. {"0 4 4 3","4 0 4 4","4 4 0 2","3 4 2 0"}

    Returns: "YES"

  49. {"0 4 4 3","4 0 4 5","4 4 0 2","3 5 2 0"}

    Returns: "NO"

  50. {"0 2 4 3","2 0 2 1","4 2 0 1","3 1 1 0"}

    Returns: "YES"

  51. {"0 2 4 3","2 0 2 1","4 2 0 2","3 1 2 0"}

    Returns: "NO"

  52. {"0 6 2 3","6 0 6 5","2 6 0 4","3 5 4 0"}

    Returns: "YES"

  53. {"0 6 1 3","6 0 6 5","1 6 0 4","3 5 4 0"}

    Returns: "NO"

  54. {"0 3 4 3","3 0 4 1","4 4 0 4","3 1 4 0"}

    Returns: "YES"

  55. {"0 3 4 3","3 0 3 1","4 3 0 4","3 1 4 0"}

    Returns: "NO"

  56. {"0 1 3 5","1 0 3 5","3 3 0 5","5 5 5 0"}

    Returns: "YES"

  57. {"0 1 3 4","1 0 3 5","3 3 0 5","4 5 5 0"}

    Returns: "NO"

  58. {"0 4 5 3","4 0 2 4","5 2 0 4","3 4 4 0"}

    Returns: "YES"

  59. {"0 4 6 3","4 0 2 4","6 2 0 4","3 4 4 0"}

    Returns: "NO"

  60. {"0 4 2 4","4 0 4 2","2 4 0 4","4 2 4 0"}

    Returns: "YES"

  61. {"0 4 2 4","4 0 5 2","2 5 0 4","4 2 4 0"}

    Returns: "NO"

  62. {"0 6 5 3","6 0 5 3","5 5 0 4","3 3 4 0"}

    Returns: "YES"

  63. {"0 6 5 3","6 0 5 3","5 5 0 5","3 3 5 0"}

    Returns: "NO"

  64. {"0 6 6 4","6 0 1 3","6 1 0 3","4 3 3 0"}

    Returns: "YES"

  65. {"0 6 5 4","6 0 1 3","5 1 0 3","4 3 3 0"}

    Returns: "NO"

  66. {"0 6 6 3", "6 0 4 5", "6 4 0 4", "3 5 4 0"}

    Returns: "YES"

  67. {"0 6 6 2", "6 0 4 5", "6 4 0 4", "2 5 4 0"}

    Returns: "NO"

  68. {"0 5 4 6","5 0 4 2","4 4 0 4","6 2 4 0"}

    Returns: "YES"

  69. {"0 4 4 6","4 0 4 2","4 4 0 4","6 2 4 0"}

    Returns: "NO"

  70. {"0 1 4 6","1 0 4 6","4 4 0 6","6 6 6 0"}

    Returns: "YES"

  71. {"0 1 4 6","1 0 5 6","4 5 0 6","6 6 6 0"}

    Returns: "NO"

  72. {"0 1 5 5","1 0 5 5","5 5 0 6","5 5 6 0"}

    Returns: "YES"

  73. {"0 1 5 6","1 0 5 5","5 5 0 6","6 5 6 0"}

    Returns: "NO"

  74. {"0 5 4 6","5 0 4 2","4 4 0 4","6 2 4 0"}

    Returns: "YES"

  75. {"0 5 4 7","5 0 4 2","4 4 0 4","7 2 4 0"}

    Returns: "NO"

  76. {"0 2 6 4","2 0 7 4","6 7 0 5","4 4 5 0"}

    Returns: "YES"

  77. {"0 2 6 4","2 0 7 3","6 7 0 5","4 3 5 0"}

    Returns: "NO"

  78. {"0 6 8 1","6 0 6 6","8 6 0 8","1 6 8 0"}

    Returns: "YES"

  79. {"0 5 8 1","5 0 6 6","8 6 0 8","1 6 8 0"}

    Returns: "NO"

  80. {"0 3 4 6","3 0 5 8","4 5 0 8","6 8 8 0"}

    Returns: "YES"

  81. {"0 2 4 6","2 0 5 8","4 5 0 8","6 8 8 0"}

    Returns: "NO"

  82. {"0 2 6 5","2 0 7 5","6 7 0 5","5 5 5 0"}

    Returns: "YES"

  83. {"0 2 6 6","2 0 7 5","6 7 0 5","6 5 5 0"}

    Returns: "NO"

  84. {"0 7 5 7","7 0 8 7","5 8 0 4","7 7 4 0"}

    Returns: "YES"

  85. {"0 7 5 8","7 0 8 7","5 8 0 4","8 7 4 0"}

    Returns: "NO"

  86. {"0 4 4 3","4 0 7 6","4 7 0 3","3 6 3 0"}

    Returns: "YES"

  87. {"0 4 4 3","4 0 7 7","4 7 0 3","3 7 3 0"}

    Returns: "NO"

  88. {"0 9 7 7","9 0 5 6","7 5 0 8","7 6 8 0"}

    Returns: "YES"

  89. {"0 9 6 7","9 0 5 6","6 5 0 8","7 6 8 0"}

    Returns: "NO"

  90. {"0 5 9 7","5 0 5 3","9 5 0 4","7 3 4 0"}

    Returns: "YES"

  91. {"0 5 9 7","5 0 5 2","9 5 0 4","7 2 4 0"}

    Returns: "NO"

  92. {"0 4 3 3","4 0 6 2","3 6 0 5","3 2 5 0"}

    Returns: "YES"

  93. {"0 4 3 2","4 0 6 2","3 6 0 5","2 2 5 0"}

    Returns: "NO"

  94. {"0 4 7 3","4 0 8 3","7 8 0 9","3 3 9 0"}

    Returns: "YES"

  95. {"0 5 7 3","5 0 8 3","7 8 0 9","3 3 9 0"}

    Returns: "NO"

  96. {"0 3 3 4","3 0 1 5","3 1 0 5","4 5 5 0"}

    Returns: "YES"

  97. {"0 3 4 4","3 0 1 5","4 1 0 5","4 5 5 0"}

    Returns: "NO"

  98. {"0 8 3 4","8 0 8 7","3 8 0 2","4 7 2 0"}

    Returns: "YES"

  99. {"0 8 3 4","8 0 9 7","3 9 0 2","4 7 2 0"}

    Returns: "NO"

  100. {"0 10 4 5","10 0 9 6","4 9 0 4","5 6 4 0"}

    Returns: "YES"

  101. {"0 10 4 5","10 0 9 6","4 9 0 3","5 6 3 0"}

    Returns: "NO"

  102. {"0 7 3 2","7 0 5 6","3 5 0 2","2 6 2 0"}

    Returns: "YES"

  103. {"0 7 3 2","7 0 5 6","3 5 0 1","2 6 1 0"}

    Returns: "NO"

  104. {"0 9 6 7","9 0 4 3","6 4 0 4","7 3 4 0"}

    Returns: "YES"

  105. {"0 9 6 6","9 0 4 3","6 4 0 4","6 3 4 0"}

    Returns: "NO"

  106. {"0 7 9 5","7 0 8 7","9 8 0 5","5 7 5 0"}

    Returns: "YES"

  107. {"0 7 10 5","7 0 8 7","10 8 0 5","5 7 5 0"}

    Returns: "NO"

  108. {"0 6 8 6","6 0 7 8","8 7 0 4","6 8 4 0"}

    Returns: "YES"

  109. {"0 6 9 6","6 0 7 8","9 7 0 4","6 8 4 0"}

    Returns: "NO"

  110. {"0 6 10 9","6 0 10 4","10 10 0 9","9 4 9 0"}

    Returns: "YES"

  111. {"0 6 10 10","6 0 10 4","10 10 0 9","10 4 9 0"}

    Returns: "NO"

  112. {"0 4 5 4", "4 0 4 7", "5 4 0 4", "4 7 4 0" }

    Returns: "NO"

  113. {"0 1 2 4", "1 0 1 2", "2 1 0 1", "4 2 1 0" }

    Returns: "NO"

  114. {"0 6 6 3", "6 0 4 5", "6 4 0 4", "3 5 4 0" }

    Returns: "YES"

  115. {"0 5 5 5", "5 0 5 5", "5 5 0 9", "5 5 9 0" }

    Returns: "NO"

  116. {"0 3 3 4", "3 0 6 5", "3 6 0 5", "4 5 5 0" }

    Returns: "YES"

  117. {"0 6 6 2", "6 0 4 5", "6 4 0 4", "2 5 4 0" }

    Returns: "NO"

  118. {"0 10 10 3", "10 0 8 9", "10 8 0 8", "3 9 8 0" }

    Returns: "YES"

  119. {"0 3 6 5", "3 0 3 3", "6 3 0 5", "5 3 5 0" }

    Returns: "NO"

  120. {"0 3 6 5", "3 0 3 4", "6 3 0 5", "5 4 5 0" }

    Returns: "YES"

  121. {"0 1 2 3", "1 0 1 2", "2 1 0 1", "3 2 1 0" }

    Returns: "YES"

  122. {"0 4 8 5", "4 0 4 3", "8 4 0 5", "5 3 5 0" }

    Returns: "YES"

  123. {"0 7 10 7", "7 0 4 8", "10 4 0 5", "7 8 5 0" }

    Returns: "NO"

  124. {"0 10 10 5", "10 0 10 6", "10 10 0 6", "5 6 6 0" }

    Returns: "NO"

  125. {"0 10 5 8", "10 0 6 8", "5 6 0 10", "8 8 10 0" }

    Returns: "NO"

  126. {"0 3 1 5", "3 0 2 4", "1 2 0 6", "5 4 6 0" }

    Returns: "NO"

  127. {"0 3 5 5", "3 0 3 6", "5 3 0 4", "5 6 4 0" }

    Returns: "NO"

  128. {"0 3 5 4", "3 0 3 6", "5 3 0 4", "4 6 4 0" }

    Returns: "NO"

  129. {"0 4 2 2", "4 0 4 3", "2 4 0 1", "2 3 1 0" }

    Returns: "YES"


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: