在这个问题中,我们给了两个整数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