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++
#include <bits/stdc++.h>
using namespace std;
int noOfTriangles( int n)
{
int y = 4 * n;
return ((y * (y - 2) * (y - 1))
- (4 * n * (n - 2) * (n - 1)))
/ 6;
}
int main()
{
int n = 1;
cout << noOfTriangles(n);
return 0;
}
|
Java
class GFG
{
static int noOfTriangles( int n)
{
int y = 4 * n;
return ((y * (y - 2 ) * (y - 1 )) -
( 4 * n * (n - 2 ) * (n - 1 ))) / 6 ;
}
public static void main (String[] args)
{
int n = 1 ;
System.out.println(noOfTriangles(n));
}
}
|
Python3
def noOfTriangles(n):
y = 4 * n
return ((y * (y - 2 ) * (y - 1 )) -
( 4 * n * (n - 2 ) * (n - 1 ))) / / 6
n = 1
print (noOfTriangles(n))
|
C#
using System;
class GFG
{
static int noOfTriangles( int n)
{
int y = 4 * n;
return ((y * (y - 2) * (y - 1)) -
(4 * n * (n - 2) * (n - 1))) / 6;
}
public static void Main (String[] args)
{
int n = 1;
Console.WriteLine(noOfTriangles(n));
}
}
|
Javascript
<script>
function noOfTriangles(n)
{
var y = 4 * n;
return ((y * (y - 2) * (y - 1))
- (4 * n * (n - 2) * (n - 1)))
/ 6;
}
var n = 1;
document.write(noOfTriangles(n));
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Last Updated :
10 Mar, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...