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 notbool 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 codeint 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 notbool 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 codeint 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 notclass GFG {// function to Check whether // a given point lies inside // or on the rectangle or notstatic 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 codepublic 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 codeif __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 notusing System;class GFG {// function to Check whether // a given point lies inside // or on the rectangle or notstatic 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 codepublic 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 notfunction 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!
