在C ++中由两组组成的最多3人团队的数量

在这个问题中,我们给了两个整数N和M,N是组1中的人数,M是组2中的人数。我们的任务是创建一个程序以查找最大3人的数量由两个小组组成的团队。

通过从这些组中选择一个人,我们将创建一个由3个人组成的团队,以便可以组建最多的团队。每个小组每个小组中必须至少有一个人。

让我们举个例子来了解这个问题,

输入-N = 5,M = 3

输出-2

解释-

团队将如下-

Team 1: Group 1 Member->2 ; Group 2 Member->1
Left in Group 1 = 3 ; left in Group 2 = 2
Team 2: Group 1 Member->2 ; Group 2 Member->1
Left in Group 1 = 1 ; left in Group 2 = 1
No more teams of 3 can be formed.

为了解决这个问题,我们将创建一个团队,该团队采用人数较少的1成员表单组,而其他组则为2个成员。更新每个组中的人数。另外,我们将维护团队数量,并在每次创建团队之后增加数量,直到可以创建团队为止。

示例

计划查找由两组组成的最多3人团队的数量-

#include <iostream>
using namespace std;
int CountTeams(int N, int M) {
   int teamCount = 0;
   while (N >= 1 && M >= 1 && N + M >= 3) {
      if (N > M) {
         N = N-2;
         M = M-1;
      }
      else {
         N = N-1;
         M = M-2;
      }
      teamCount++;
   }
   return teamCount;
}
int main() {
   int N = 5, M = 3;
   cout<<"The maximum number of 3-person teams is "<<CountTeams(N, M);
   return 0;
}

输出结果

The maximum number of 3-person teams is 2