C++中从两组人员中最多可组建3人团队的数量


在这个问题中,我们给定两个整数N和M,N是第一组的人数,M是第二组的人数。我们的任务是创建一个程序来查找从两组中最多可以组建的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

更新于:2020年6月3日

914 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告