Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนทีมสูงสุด 3 คนจากสองกลุ่มใน C++


ในปัญหานี้ เราได้รับจำนวนเต็มสองจำนวน 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