Ways of dividing a group into two halves such that two elements are in different groups

• Last Updated : 07 May, 2021

Given 2n girls and randomly divided into two subgroups each containing n girls. The task is to count the number of ways in which groups can be formed such that two beautiful girls are into different groups.
Example:

Input:
Output:
Let group be r1, r2, b1, b2 where b1 and b2 are beautiful girls
Groups are: ((r1, b1) (r2, b2)), ((r1, b2) (r2, b1)), ((r2, b2) (r1, b1)), ((r2, b1) (r1, b2))
Input:
Output: 40

Approach: There are two ways in which the two beautiful girls lie in different groups and corresponding to each way the remaining (2n – 2) girls can be divided into two groups is Hence total number of ways are 2 * Implementation Code :

C++

 // CPP Program to count// Number of ways in which two// Beautiful girls are in different group#include using namespace std; // This function will// return the factorial of a given numberint factorial(int n){    int result = 1;    for (int i = 1; i <= n; i++)        result = result * i;    return result;} // This function will calculate nCr of given// n and rint nCr(int n, int r){    return factorial(n) / (factorial(r) * factorial(n - r));} // This function will// Calculate number of waysint calculate_result(int n){    int result = 2 * nCr((n - 2), (n / 2 - 1));    return result;} // Driver Codeint main(void){    int a = 2, b = 4;    cout << calculate_result(2 * a) << endl;    cout << calculate_result(2 * b) << endl;     return 0;}

Java

 //Java Program to count// Number of ways in which two// Beautiful girls are in different group import java.io.*; class GFG { // This function will// return the factorial of a given numberstatic int factorial(int n){    int result = 1;    for (int i = 1; i <= n; i++)        result = result * i;    return result;} // This function will calculate nCr of given// n and rstatic int nCr(int n, int r){    return factorial(n) / (factorial(r) * factorial(n - r));} // This function will// Calculate number of waysstatic int calculate_result(int n){    int result = 2 * nCr((n - 2), (n / 2 - 1));    return result;} // Driver Code     public static void main (String[] args) {        int a = 2, b = 4;    System.out.println( calculate_result(2 * a));    System.out.print(calculate_result(2 * b));     }} // This code is contributed by inder_verma..

Python3

 # Python3 Program to count# Number of ways in which two# Beautiful girls are in different group # This function will# return the factorial of a# given numberdef factorial(n) :     result = 1    for i in range(1, n + 1) :        result *= i             return result # This function will calculate nCr of given# n and rdef nCr(n, r) :     return (factorial(n) // (factorial(r)            * factorial(n - r)))  # This function will# Calculate number of waysdef calculate_result(n) :     result = 2 * nCr((n -2), (n // 2 - 1))     return result  # Driver codeif __name__ == "__main__" :     a, b = 2, 4    print(calculate_result(2 * a))    print(calculate_result(2 * b)) # This code is contributed by# ANKITRAI1

C#

 //C# Program to count// Number of ways in which two// Beautiful girls are in different groupusing System; using System; public class GFG {  // This function will// return the factorial of a given numberstatic int factorial(int n){    int result = 1;    for (int i = 1; i <= n; i++)        result = result * i;    return result;}  // This function will calculate nCr of given// n and rstatic int nCr(int n, int r){    return factorial(n) / (factorial(r) * factorial(n - r));}  // This function will// Calculate number of waysstatic int calculate_result(int n){    int result = 2 * nCr((n - 2), (n / 2 - 1));    return result;}  // Driver Code      public static void Main () {        int a = 2, b = 4;    Console.WriteLine( calculate_result(2 * a));    Console.Write(calculate_result(2 * b));      }}  // This code is contributed by Subhadeep



Javascript

 // Javascript Program to count Number// of ways in which two Beautiful// girls are in different group // This function will return// the factorial of a given numberfunction factorial(n){    let result = 1;    for (let i = 1; i <= n; i++)        result = result * i;    return result;} // This function will calculate// nCr of given n and rfunction nCr(n, r){    return factorial(n) / (factorial(r) *                            factorial(n - r));} // This function will// Calculate number of waysfunction calculate_result(n){    let result = 2 * nCr((n - 2),                    (n / 2 - 1));    return result;} // Driver Codelet a = 2;let b = 4;document.write(calculate_result(2 * a) + "
");document.write(calculate_result(2 * b) + "
"); // This Code is contributed by gfgking
Output:
4
40

Time Complexity: O(N )

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up