C++ Program to count number of teams can be formed for coding challenge

Suppose we have two numbers a and b. In a coding challenge, there are 4 slots for participants in a team. There are a number of programmers and b number of mathematicians. We have to count how many teams can be formed, if: each team must have at lease one programmer and at least one mathematician.

Problem Category

Various problems in programming can be solved through different techniques. To solve a problem, we have to devise an algorithm first, and to do that we have to study the particular problem in detail. A recursive approach can be used if there is a recurring appearance of the same problem over and over again; alternatively, we can use iterative structures also. Control statements such as if-else and switch cases can be used to control the flow of logic in the program. Efficient usage of variables and data structures provides an easier solution and a lightweight, low-memory-requiring program. We have to look at the existing programming techniques, such as Divide-and-conquer, Greedy Programming, Dynamic Programming, and find out if they can be used. This problem can be solved by some basic logic or a brute-force approach. Follow the following contents to understand the approach better.

So, if the input of our problem is like a = 17; b = 3, then the output will be 3.


To solve this, we will follow these steps −

return minimum of [(a + b) / 4], a and b


Let us see the following implementation to get better understanding −

#include <bits/stdc++.h>
using namespace std;
int solve(int a, int b){
   return min((a + b) / 4, min(a, b));
int main(){
   int a = 17;
   int b = 3;
   cout << solve(a, b) << endl;


17, 3