Computer >> Máy Tính >  >> Lập trình >> C ++

Số lượng nhóm 3 người tối đa được thành lập từ hai nhóm trong C ++


Trong bài toán này, chúng ta cho hai số nguyên N và M, N là số người trong nhóm 1 và M là số người trong nhóm 2. Nhiệm vụ của chúng ta là tạo a chương trình để tìm số lượng tối đa các đội 3 người được thành lập từ hai nhóm.

Chúng tôi sẽ tạo các nhóm gồm 3 người bằng cách chọn một người từ các nhóm này để có thể tạo ra các nhóm tối đa. Mỗi nhóm phải có ít nhất một người từ mỗi nhóm.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào - N =5, M =3

Đầu ra - 2

Giải thích -

Các đội sẽ như sau -

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.

Để giải quyết vấn đề này, chúng tôi sẽ tạo các nhóm lấy 1 thành viên trong nhóm có ít người hơn và 2 thành viên từ nhóm còn lại. cập nhật số người trong mỗi nhóm. Ngoài ra, chúng tôi sẽ duy trì số lượng nhóm và tăng lên sau mỗi lần tạo nhóm cho đến khi có thể tạo nhóm.

Ví dụ

Chương trình tìm số lượng tối đa các đội 3 người được thành lập từ hai nhóm -

#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;
}

Đầu ra

The maximum number of 3-person teams is 2