Related Articles

# Check if three straight lines are concurrent or not

• Difficulty Level : Easy
• Last Updated : 05 May, 2021

Given three lines equation,
a1x + b1y + c1 = 0
a2x + b2y + c2 = 0
a3x + b3y + c3 = 0
The task is to check whether the given three lines are concurrent or not. Three straight lines are said to be concurrent if they pass through a point i.e., they meet at a point.
Examples:

```Input : a1 = 2, b1 = -3, c1 = 5
a2 = 3, b2 = 4, c2 = -7
a3 = 9, b3 = -5, c3 = 8
Output : Yes

Input : a1 = 2, b1 = -3, c1 = 5
a2 = 3, b2 = 4, c2 = -7
a3 = 9, b3 = -5, c3 = 4
Output : No```

Let
a1x + b1y + c1 = 0 ………. (1)
a2x + b2y + c2 = 0 ………. (2)
a3x + b3y + c3 = 0 ………. (3)
Suppose the eqn (i) and (ii) intersects at (x1, y1). Then (x1, y1) will satisfy both the equations.
Therefore, solving (i) and (ii) using method of cross-multiplication, we get,
(x1/b1c2 – b2c1) = (y1/c1a2 – c2a1) = (1/a1b2 – a2b1)
Therefore,
x1 = (b1c2 – b2c1/a1b2 – a2b1) and
y1 = (c1a2 – c2a1/a1b2 – a2b1), a1b2 – a2b1 != 0
Therefore, the required coordinates of the point of intersection of the lines (i) and (ii) are
(b1c2 – b2c1/a1b2 – a2b1, c1a2 – c2a1/a1b2 – a2b1)
For, three of line to be concurrent, (x1, y1) must satisfy the equation (iii) as well.
So,
a3x + b3y + c3 = 0
=> a3(b1c2 – b2c1/a1b2 – a2b1) + b3(c1a2 – c2a1/a1b2 – a2b1) + c3 = 0
=> a3(b1c2 – b2c1) + b3(c1a2 – c2a1) + c3(a1b2 – a2b1) = 0
So, we only need to check if above condition satisfy or not.
Below is the implementation of this approach:

## C++

 `// CPP Program to check if three straight``// line are concurrent or not``#include ``using` `namespace` `std;` `// Return true if three line are concurrent,``// else false.``bool` `checkConcurrent(``int` `a1, ``int` `b1, ``int` `c1,``                      ``int` `a2, ``int` `b2, ``int` `c2,``                      ``int` `a3, ``int` `b3, ``int` `c3)``{``    ``return` `(a3 * (b1 * c2 - b2 * c1) +``            ``b3 * (c1 * a2 - c2 * a1) + ``            ``c3 * (a1 * b2 - a2 * b1) == 0);``}` `// Driven Program``int` `main()``{``    ``int` `a1 = 2, b1 = -3, c1 = 5;``    ``int` `a2 = 3, b2 = 4, c2 = -7;``    ``int` `a3 = 9, b3 = -5, c3 = 8;` `    ``(checkConcurrent(a1, b1, c1, a2, b2, c2,``     ``a3, b3, c3) ? (cout << ``"Yes"``) : (cout << ``"No"``));``    ``return` `0;``}`

## Java

 `// Java Program to check if three straight``// line are concurrent or no``import` `java.io.*;` `class` `GFG {` `    ``// Return true if three line are concurrent,``    ``// else false.``    ``static` `boolean` `checkConcurrent(``int` `a1, ``int` `b1,``                   ``int` `c1, ``int` `a2, ``int` `b2, ``int` `c2,``                           ``int` `a3, ``int` `b3, ``int` `c3)``    ``{``        ``return` `(a3 * (b1 * c2 - b2 * c1) +``                ``b3 * (c1 * a2 - c2 * a1) +``                ``c3 * (a1 * b2 - a2 * b1) == ``0``);``    ``}``    ` `    ``// Driven Program``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `a1 = ``2``, b1 = -``3``, c1 = ``5``;``        ``int` `a2 = ``3``, b2 = ``4``, c2 = -``7``;``        ``int` `a3 = ``9``, b3 = -``5``, c3 = ``8``;``    ` `        ``if``(checkConcurrent(a1, b1, c1, a2, b2,``                               ``c2, a3, b3, c3))``            ``System.out.println( ``"Yes"``);``        ``else``            ``System.out.println( ``"No"``);``    ``}``}` `// This code is contributed by anuj_67.`

## Python 3

 `# Python3 Program to check if three straight``# line are concurrent or not` `# Return true if three line are concurrent,``# else false.``def` `checkConcurrent(a1, b1, c1, a2, b2, c2,``                                 ``a3, b3, c3):` `    ``return` `(a3 ``*` `(b1 ``*` `c2 ``-` `b2 ``*` `c1) ``+``            ``b3 ``*` `(c1 ``*` `a2 ``-` `c2 ``*` `a1) ``+``            ``c3 ``*` `(a1 ``*` `b2 ``-` `a2 ``*` `b1) ``=``=` `0``)`  `# Driven Program``a1 ``=` `2``b1 ``=` `-``3``c1 ``=` `5``a2 ``=` `3``b2 ``=` `4``c2 ``=` `-``7``a3 ``=` `9``b3 ``=` `-``5``c3 ``=` `8` `if``(checkConcurrent(a1, b1, c1, a2, b2, c2,``                               ``a3, b3, c3)):``    ``print``(``"Yes"``)``else``:``    ``print``(``"No"``)` `# This code is contributed by Smitha`

## C#

 `// C# Program to check if three straight``// line are concurrent or no``using` `System;` `class` `GFG {` `    ``// Return true if three line are concurrent,``    ``// else false.``    ``static` `bool` `checkConcurrent(``int` `a1, ``int` `b1,``                ``int` `c1, ``int` `a2, ``int` `b2, ``int` `c2,``                        ``int` `a3, ``int` `b3, ``int` `c3)``    ``{``        ``return` `(a3 * (b1 * c2 - b2 * c1) +``                ``b3 * (c1 * a2 - c2 * a1) +``                ``c3 * (a1 * b2 - a2 * b1) == 0);``    ``}``    ` `    ``// Driven Program``    ``public` `static` `void` `Main ()``    ``{``        ``int` `a1 = 2, b1 = -3, c1 = 5;``        ``int` `a2 = 3, b2 = 4, c2 = -7;``        ``int` `a3 = 9, b3 = -5, c3 = 8;``    ` `        ``if``(checkConcurrent(a1, b1, c1, a2, b2,``                            ``c2, a3, b3, c3))``            ``Console.WriteLine( ``"Yes"``);``        ``else``            ``Console.WriteLine( ``"No"``);``    ``}``}` `// This code is contributed by anuj_67.`

## PHP

 ``

## Javascript

 ``
Output:
`Yes`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up