Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 두 그룹으로 구성된 최대 3인 팀 수


이 문제에서 두 개의 정수 N과 M이 주어지고 N은 그룹 1의 사람들 수이고 M은 그룹 2의 사람들 수입니다. 우리의 임무는 다음을 생성하는 것입니다. 두 그룹으로 구성된 최대 3인 팀 수를 찾는 프로그램

최대한 많은 팀을 구성할 수 있도록 이 그룹에서 1명을 선택하여 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