Skip to content
Related Articles

Related Articles

Python – Find the maximum number of triangles with given points on three lines
  • Last Updated : 16 Jul, 2020

Given three parallel straight lines l1, l2 and l3 lying in the same plane. Total numbers of m, n and k points lie on the line l1, l2, l3 respectively. This article aims to find the maximum number of triangles formed with vertices at these points.

Examples:

Input : m = 14, n = 34, k = 114
Output : 448708.0

Input : m = 95, n = 77, k = 94
Output : 2755951.0

Approach-



  1. Total number of triangle = (m + n + k)C3
  2. Number of triangle that is not valid traingle from l1 plane = mC3
  3. Number of triangle that is not valid traingle from l2 plane = nC3
  4. Number of triangle that is not valid traingle from l3 plane = kC3
  5. so number of valid Triangle = (m + n + k)C3 - mC3 - nC3 - kC3

Below is the Python code implementation of the approach.




# Pyton code implementation
import math
def nooftriangle(m, n, k):
      
    # r1 = (m + n + k)C3
    r1 = math.factorial(m + n + k) / (
            math.factorial(3) * math.factorial(m + n + k - 3))
    # r2 = mC3
    r2 = math.factorial(m) / (math.factorial(3) * math.factorial(m - 3))
      
    # r3 = nC3
    r3 = math.factorial(n) / (math.factorial(3) * math.factorial(n - 3))
      
    #r4 = kC3
    r4 = math.factorial(k) / (math.factorial(3) * math.factorial(k - 3))
      
    result = r1 - r2 - r3 - r4
    return(result) 
      
# Driver code
m = 17
n = 16
k = 11
print("Number of traingles : ", nooftriangle(m, n, k))
      

Output:

Number of traingles :  11839.0

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
Recommended Articles
Page :