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: 4
Output: 4
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: 8
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    {2n-2}_C_{n-1}
Hence total number of ways are 2 *    {2n-2}_C_{n-1}
Implementation Code :

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP Program to count
// Number of ways in which two
// Beautiful girls are in different group
#include <bits/stdc++.h>
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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

   //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..

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


PHP

Output:

4
40


My Personal Notes arrow_drop_up

All powers are within you You can do anything and everything Believe in that

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.