Open In App

Forming triangles using points on a square

Improve
Improve
Like Article
Like
Save
Share
Report

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:
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>


Output: 

4

 

Time Complexity: O(1)

Auxiliary Space: O(1)



Last Updated : 10 Mar, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads