 GeeksforGeeks App
Open App Browser
Continue

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

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 number``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 r``int` `nCr(``int` `n, ``int` `r)``{``    ``return` `factorial(n) / (factorial(r) * factorial(n - r));``}` `// This function will``// Calculate number of ways``int` `calculate_result(``int` `n)``{``    ``int` `result = 2 * nCr((n - 2), (n / 2 - 1));``    ``return` `result;``}` `// Driver Code``int` `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 number``static` `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 r``static` `int` `nCr(``int` `n, ``int` `r)``{``    ``return` `factorial(n) / (factorial(r) * factorial(n - r));``}` `// This function will``// Calculate number of ways``static` `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 number``def` `factorial(n) :` `    ``result ``=` `1``    ``for` `i ``in` `range``(``1``, n ``+` `1``) :``        ``result ``*``=` `i``        ` `    ``return` `result` `# This function will calculate nCr of given``# n and r``def` `nCr(n, r) :` `    ``return` `(factorial(n) ``/``/` `(factorial(r)``            ``*` `factorial(n ``-` `r)))`  `# This function will``# Calculate number of ways``def` `calculate_result(n) :` `    ``result ``=` `2` `*` `nCr((n ``-``2``), (n ``/``/` `2` `-` `1``))` `    ``return` `result`  `# Driver code``if` `__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 number``static` `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 r``static` `int` `nCr(``int` `n, ``int` `r)``{``    ``return` `factorial(n) / (factorial(r) * factorial(n - r));``}`` ` `// This function will``// Calculate number of ways``static` `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`

## PHP

 ``

## 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 number``function` `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 r``function` `nCr(n, r)``{``    ``return` `factorial(n) / (factorial(r) *``                            ``factorial(n - r));``}` `// This function will``// Calculate number of ways``function` `calculate_result(n)``{``    ``let result = 2 * nCr((n - 2),``                    ``(n / 2 - 1));``    ``return` `result;``}` `// Driver Code``let 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), since the loop runs for N times.

Auxiliary Space: O(1), since no extra space has been taken.

My Personal Notes arrow_drop_up