Check whether two points (x1, y1) and (x2, y2) lie on same side of a given line or not

19 Mar, 2021
Given three integers a, b and c which represents coefficients of the equation of a line a * x + b * y – c = 0. Given two integer points (x1, y1) and (x2, y2). The task is to determine whether the points (x1, y1) and (x2, y2) lie on the same side of the given line or not.Examples:  
Input : a = 1, b = 1, c = 1, x1 = 1, y1 = 1, x2 = 1, y2 = 2 Output : yes On applying (x1, y1) and (x2, y2) on a * x + b * y – c, gives 1 and 2 respectively both of which have the same sign, hence both the points lie on same side of the line. Input : a = 1, b = 1, c = 1, x1 = 1, y1 = 1, x2 = 0, y2 = 0 Output : no  
 
Approach : Apply both the points on given line equation and check if the obtained values belong to same parity or not.Below is the implementation of the above approach:  
C++
Java
Python3
C#
Javascript
// C++ program to check if two points// lie on the same side or not#include <bits/stdc++.h>using namespace std; // Function to check if two points// lie on the same side or notbool pointsAreOnSameSideOfLine(int a, int b, int c,                        int x1,    int y1, int x2, int y2){    int fx1; // Variable to store a * x1 + b * y1 - c    int fx2; // Variable to store a * x2 + b * y2 - c     fx1 = a * x1 + b * y1 - c;    fx2 = a * x2 + b * y2 - c;     // If fx1 and fx2 have same sign    if ((fx1 * fx2) > 0)        return true;     return false;} // Driver codeint main(){    int a = 1, b = 1, c = 1;    int x1 = 1, y1 = 1;    int x2 = 2, y2 = 1;     if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))        cout << "Yes";    else        cout << "No";}
// Java program to check if two points// lie on the same side or notimport java.util.*; class GFG{ // Function to check if two points// lie on the same side or notstatic boolean pointsAreOnSameSideOfLine(int a, int b,                                         int c, int x1,                                         int y1, int x2,                                         int y2){    int fx1; // Variable to store a * x1 + b * y1 - c    int fx2; // Variable to store a * x2 + b * y2 - c     fx1 = a * x1 + b * y1 - c;    fx2 = a * x2 + b * y2 - c;     // If fx1 and fx2 have same sign    if ((fx1 * fx2) > 0)        return true;     return false;} // Driver codepublic static void main(String[] args){    int a = 1, b = 1, c = 1;    int x1 = 1, y1 = 1;    int x2 = 2, y2 = 1;     if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))        System.out.println("Yes");    else        System.out.println("No");}} // This code is contributed by 29AjayKumar
# Python3 program to check if two points# lie on the same side or not # Function to check if two points# lie on the same side or notdef pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2):    fx1 = 0 # Variable to store a * x1 + b * y1 - c    fx2 = 0 # Variable to store a * x2 + b * y2 - c     fx1 = a * x1 + b * y1 - c    fx2 = a * x2 + b * y2 - c     # If fx1 and fx2 have same sign    if ((fx1 * fx2) > 0):        return True     return False # Driver codea, b, c = 1, 1, 1x1, y1 = 1, 1x2, y2 = 2, 1 if (pointsAreOnSameSideOfLine(a, b, c,                              x1, y1, x2, y2)):    print("Yes")else:    print("No") # This code is contributed by Mohit Kumar
// C# program to check if two points// lie on the same side or notusing System;class GFG{ // Function to check if two points// lie on the same side or notstatic bool pointsAreOnSameSideOfLine(int a, int b,                                      int c, int x1,                                      int y1, int x2,                                      int y2){    int fx1; // Variable to store a * x1 + b * y1 - c    int fx2; // Variable to store a * x2 + b * y2 - c     fx1 = a * x1 + b * y1 - c;    fx2 = a * x2 + b * y2 - c;     // If fx1 and fx2 have same sign    if ((fx1 * fx2) > 0)        return true;     return false;} // Driver codepublic static void Main(){    int a = 1, b = 1, c = 1;    int x1 = 1, y1 = 1;    int x2 = 2, y2 = 1;     if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))        Console.WriteLine("Yes");    else        Console.WriteLine("No");}} // This code is contributed by Code_Mech
<script>    // Javascript program to check if two points     // lie on the same side or not         // Function to check if two points     // lie on the same side or not    function pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2)    {        let fx1; // Variable to store a * x1 + b * y1 - c        let fx2; // Variable to store a * x2 + b * y2 - c         fx1 = a * x1 + b * y1 - c;        fx2 = a * x2 + b * y2 - c;         // If fx1 and fx2 have same sign        if ((fx1 * fx2) > 0)            return true;         return false;    }         let a = 1, b = 1, c = 1;    let x1 = 1, y1 = 1;    let x2 = 2, y2 = 1;       if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))        document.write("Yes");    else        document.write("No"); // This code is contributed by divyesh072019.</script>
Yes
 
mohit kumar 29
29AjayKumar
Code_Mech
divyesh072019
Geometric
Mathematical
Mathematical
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program for distance between two points on earth
Optimum location of point to minimize total distance
Convex Hull | Set 1 (Jarvis's Algorithm or Wrapping)
Line Clipping | Set 1 (Cohen–Sutherland Algorithm)
Check whether a given point lies inside a triangle or not
Program for Fibonacci numbers
Set in C++ Standard Template Library (STL)
Write a program to print all permutations of a given string
C++ Data Types
Merge two sorted arrays