Forming triangles using points on a square
Given a square with N points on each side of the square and none of these points co-incide with the corners of the square. The task is to calculate the total number of triangles that can be formed using these 4 * N points (N points on each side of the square) as vertices of the triangle.
Examples:
Input: N = 1
Output: 4
There is one point on each side. So we can make three rectangles by leaving one point and picking other three points out of the four.
Input: N = 2
Output: 56
Approach: The number of ways of choosing 3 points among 4 * N points is (4 * N)C3. However, some of them do not form a triangle. This happens when all the three chosen points are on the same side of the square. The count of these triplets is NC3 for each of the side i.e. 4 * NC3 in total. Therefore, the required count of triangles will be ((4 * N)C3) – (4 * NC3).
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return the count // of possible triangles int noOfTriangles( int n) { int y = 4 * n; return ((y * (y - 2) * (y - 1)) - (4 * n * (n - 2) * (n - 1))) / 6; } // Driver code int main() { int n = 1; cout << noOfTriangles(n); return 0; } |
Java
// Java implementation of the above approach class GFG { // Function to return the count // of possible triangles static int noOfTriangles( int n) { int y = 4 * n; return ((y * (y - 2 ) * (y - 1 )) - ( 4 * n * (n - 2 ) * (n - 1 ))) / 6 ; } // Driver code public static void main (String[] args) { int n = 1 ; System.out.println(noOfTriangles(n)); } } // This code is contributed by AnkitRai01 |
Python3
# Python3 implementation of the approach # Function to return the count # of possible triangles def noOfTriangles(n): y = 4 * n return ((y * (y - 2 ) * (y - 1 )) - ( 4 * n * (n - 2 ) * (n - 1 ))) / / 6 # Driver code n = 1 print (noOfTriangles(n)) # This code is contributed by Mohit Kumar |
C#
// C# implementation of the above approach using System; class GFG { // Function to return the count // of possible triangles static int noOfTriangles( int n) { int y = 4 * n; return ((y * (y - 2) * (y - 1)) - (4 * n * (n - 2) * (n - 1))) / 6; } // Driver code public static void Main (String[] args) { int n = 1; Console.WriteLine(noOfTriangles(n)); } } // This code is contributed by 29AjayKumar |
Javascript
<script> // javascript implementation of the approach // Function to return the count // of possible triangles function noOfTriangles(n) { var y = 4 * n; return ((y * (y - 2) * (y - 1)) - (4 * n * (n - 2) * (n - 1))) / 6; } // Driver code var n = 1; document.write(noOfTriangles(n)); </script> |
4
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...