Check Square

Moderate
0/80
Average time to solve is 10m
profile
Contributed by
3 upvotes
Asked in companies
Expedia GroupOlaIntuit

Problem statement

You are given four points on a two-dimensional coordinate system.

Can you check if those four points make a square?

Example:
Let the input be [1,0,2,1] and [0,1,1,2].
So, the coordinates of the four points be [ {1, 0}, {0, 1}, {2, 1}, {1, 2} ]

example

From the above image, we can see that it is a square. Thus, the output will be ‘Yes’.
Detailed explanation ( Input/output format, Notes, Images )
Input format:
The first line of input contains an integer ‘T’ denoting the number of test cases.

The first line of each test case contains four space-separated integers representing x-coordinates of the four points.

The second line of each test case contains four space-separated integers representing y-coordinates of the four points.
Output format :
For each test case, print ‘Yes’ if four points make a square otherwise print ‘No’.
Note:
Don’t print anything, just return True if four points make a square otherwise return False.
Constraints:
1 <= T <= 10^4
-10^9 <= xi, yi <= 10^9

Time limit: 1 sec
Sample Input 1:
2
1 0 2 1
0 1 1 2
1 0 0 1
1 0 1 2
Sample Output 1:
Yes
No
Explanation For Sample Input 1:
Test Case 1: Refer to the example described above.

Test Case 2:
    The quadrilateral for the given four points is represented below.

test case 2

As we can clearly see this is not a square. Thus, the answer will be ‘No’.
Sample Input 2:
2
1 2 4 2
0 2 4 2
0 1 2 3
1 -1 2 0
Sample Output 2:
No
Yes
Hint

The simple approach would be checking the distance between each pair of points and confirming whether it is a square or not.

Approaches (1)
Distance check

The simple approach would be checking the distance between each pair of points and confirming whether it is a square or not.

 

  • Calculate the square of distance between each pair of points. We are using square of distance to maintain precision.
  • Thus, we have 6 values of square of distance between each pair of points as we have 4 points.
  • Now check the following:
    • Four of the values are equal to each other representing the side of the square.
    • The remaining two values are equal to each other representing the diagonal of the square.
    • The two equal values are twice of four equal values representing the relationship between side and the diagonal as here the values are square of distances (2 * side^2 = diagonal^2).
    • Each value must be greater than 0.
Time Complexity

O(1)

 

We will be calculating 6 distances, so Constant Time is being used.

Space Complexity

O(1)

 

Constant extra space is used.

Code Solution
(100% EXP penalty)
Check Square
Full screen
Console