Given two numbers a and b where b < a form a rectangle with points (0, b), (b, 0), (a-b, b), (b, a-b). Given a point (x, y), the task is to check whether this point lies inside or on the rectangle or not.
Examples:
Input: a = 7, b = 2, x = 5, y = 2; Output: Given point does not lie on the rectangle Input: a = 7, b = 2, x = 4, y = 5; Output: Given point lies inside the rectangle
Approach: An efficient way is to form 4 line’s equation of a rectangle. Then, if a given point lies in or on the rectangle if and only if, substituting the given point on:
- The right sideline ( x-y-b = 0 ) must give the value less than or equals to zero.
- The left sideline ( x-y+a = 0 ) must give the value greater than or equals to one.
- The upper sideline ( x+y-2*a+b = 0 ) must give the value less than or equals to zero.
- The lower sideline ( x+y-b = 0 ) must give the value greater than or equals to one.
C++
// C++ program to Check whether a given point // lies inside or on the rectangle or not #include <bits/stdc++.h> using namespace std; // function to Check whether a given point // lies inside or on the rectangle or not bool LiesInsieRectangle( int a, int b, int x, int y) { if (x - y - b <= 0 && x - y + b >= 0 && x + y - 2 * a + b <= 0 && x + y - b >= 0) return true ; return false ; } // Driver code int main() { int a = 7, b = 2, x = 4, y = 5; if (LiesInsieRectangle(a, b, x, y)) cout << "Given point lies inside the rectangle" ; else cout << "Given point does not lie on the rectangle" ; return 0; } |
C
// C program to Check whether a given point // lies inside or on the rectangle or not #include <stdio.h> #include <stdbool.h> // function to Check whether a given point // lies inside or on the rectangle or not bool LiesInsieRectangle( int a, int b, int x, int y) { if (x - y - b <= 0 && x - y + b >= 0 && x + y - 2 * a + b <= 0 && x + y - b >= 0) return true ; return false ; } // Driver code int main() { int a = 7, b = 2, x = 4, y = 5; if (LiesInsieRectangle(a, b, x, y)) printf ( "Given point lies inside the rectangle" ); else printf ( "Given point does not lie on the rectangle" ); return 0; } // This code is contributed by kothavvsaakash. |
Java
// Java program to Check whether // a given point lies inside or // on the rectangle or not class GFG { // function to Check whether // a given point lies inside // or on the rectangle or not static boolean LiesInsieRectangle( int a, int b, int x, int y) { if (x - y - b <= 0 && x - y + b >= 0 && x + y - 2 * a + b <= 0 && x + y - b >= 0 ) return true ; return false ; } // Driver code public static void main(String[] args) { int a = 7 , b = 2 , x = 4 , y = 5 ; if (LiesInsieRectangle(a, b, x, y)) System.out.println( "Given point lies " + "inside the rectangle" ); else System.out.println( "Given point does not " + "lie on the rectangle" ); } } // This code is contributed // by ChitraNayal |
Python3
# Python 3 program to Check whether # a given point lies inside or on # the rectangle or not # function to Check whether a given # point lies inside or on the # rectangle or not def LiesInsieRectangle(a, b, x, y) : if (x - y - b < = 0 and x - y + b > = 0 and x + y - 2 * a + b < = 0 and x + y - b > = 0 ) : return True return False # Driver code if __name__ = = "__main__" : # multiple assignments a, b, x, y = 7 , 2 , 4 , 5 if LiesInsieRectangle(a, b, x, y) : print ( "Given point lies inside" " the rectangle" ) else : print ( "Given point does not lie" " on the rectangle" ) # This code is contributed by ANKITRAI1 |
C#
// C# program to Check whether // a given point lies inside // or on the rectangle or not using System; class GFG { // function to Check whether // a given point lies inside // or on the rectangle or not static bool LiesInsieRectangle( int a, int b, int x, int y) { if (x - y - b <= 0 && x - y + b >= 0 && x + y - 2 * a + b <= 0 && x + y - b >= 0) return true ; return false ; } // Driver code public static void Main() { int a = 7, b = 2, x = 4, y = 5; if (LiesInsieRectangle(a, b, x, y)) Console.Write( "Given point lies " + "inside the rectangle" ); else Console.Write( "Given point does not " + "lie on the rectangle" ); } } // This code is contributed // by ChitraNayal |
PHP
<?php // PHP program to Check whether // a given point lies inside // or on the rectangle or not // function to Check whether // a given point lies inside // or on the rectangle or not function LiesInsieRectangle( $a , $b , $x , $y ) { if ( $x - $y - $b <= 0 && $x - $y + $b >= 0 && $x + $y - 2 * $a + $b <= 0 && $x + $y - $b >= 0) return true; return false; } // Driver code $a = 7; $b = 2; $x = 4; $y = 5; if (LiesInsieRectangle( $a , $b , $x , $y )) echo "Given point lies " . "inside the rectangle" ; else echo "Given point does not" . " lie on the rectangle" ; // This code is contributed by mits ?> |
Javascript
<script> // Javascript program to Check whether a given point // lies inside or on the rectangle or not // function to Check whether a given point // lies inside or on the rectangle or not function LiesInsieRectangle(a, b, x, y) { if (x - y - b <= 0 && x - y + b >= 0 && x + y - 2 * a + b <= 0 && x + y - b >= 0) return true ; return false ; } // Driver code let a = 7, b = 2, x = 4, y = 5; if (LiesInsieRectangle(a, b, x, y)) document.write( "Given point lies inside the rectangle" ); else document.write( "Given point does not lie on the rectangle" ); // This code is contributed by Mayank Tyagi </script> |
Given point lies inside the rectangle
Time Complexity: O(1), since there is no loop or recursion.
Auxiliary Space: O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!