Count of Unique Direct Path Between N Points On a Plane

• Difficulty Level : Easy
• Last Updated : 11 Oct, 2021

Given N points on a plane, where each point has a direct path connecting it to a different point, the task is to count the total number of unique direct paths between the points.

Note: The value of N will always be greater than 2.

Examples:

Input: N = 4
Output: 6
Explanation: Think of 4 points as a 4 sided polygon. There will 4 direct paths (sides of the polygon) as well as 2 diagonals (diagonals of the polygon). Hence the answer will be 6 direct paths. Input: N = 3
Output:  3
Explanation: Think of 3 points as a 3 sided polygon. There will 3 direct paths (sides of the polygon) as well as 0 diagonals (diagonals of the polygon). Hence the answer will be 3 direct paths. Approach: The given problem can be solved using an observation that for any N-sided there are (number of sides + number of diagonals) direct paths. For any N-sided polygon, there are N sides and N*(N – 3)/2 diagonals. Therefore, the total number of direct paths is given by N + (N * (N – 3))/2.

Below is the implementation of the above approach:

C++

 // C++ program for the above approach#include using namespace std; // Function to count the total number// of direct pathsint countDirectPath(int N){    return N + (N * (N - 3)) / 2;} // Driver Codeint main(){     int N = 5;    cout << countDirectPath(N);     return 0;}

Java

 // Java program for the above approachimport java.io.*;class GFG{   // Function to count the total number// of direct pathsstatic int countDirectPath(int N){    return N + (N * (N - 3)) / 2;} // Driver Codepublic static void main(String []args){     int N = 5;    System.out.print(countDirectPath(N)); }} // This code is contributed by shivanisinghss2110

Python3

 # python program for the above approach # Function to count the total number# of direct pathsdef countDirectPath(N):     return N + (N * (N - 3)) // 2 # Driver Codeif __name__ == "__main__":     N = 5    print(countDirectPath(N)) # This code is contributed by rakeshsahni

C#

 // C# program for the above approachusing System; public class GFG{       // Function to count the total number    // of direct paths    static int countDirectPath(int N)    {        return N + (N * (N - 3)) / 2;    }         // Driver Code    public static void Main(string []args)    {             int N = 5;        Console.Write(countDirectPath(N));         }} // This code is contributed by AnkThon

Javascript


Output:
10

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up