#include <bits/stdc++.h>
using namespace std;
// function used to generate binomial coefficient
// time complexity O(m)
int binomial_coefficient(int a, int b)
{
int res = 1;
if (b > a - b)
b = a - b;
for (int i = 0; i < b; ++i) {
res *= (a - i);
res /= (i + 1);
}
return res;
}
// helper function for generating no of ways
// to distribute m mangoes amongst n people
int calculate_ways(int b, int a)
{
// not enough mangoes to be distributed
if (b < a)
return 0;
// ways -> (n+m-1)C(n-1)
int ways = binomial_coefficient(a + b - 1, a - 1);
return ways;
}
// Driver function
int main()
{
// m represents number of mangoes
// n represents number of people
int b = 7, a = 5;
int result = calculate_ways(b, a);
printf("%d\n", result);
return 0;
}
Comments
Leave a comment