इस समस्या में, हमें दो पूर्णांक N और M दिए गए हैं, N समूह 1 में लोगों की संख्या है, और M समूह 2 में लोगों की संख्या है। हमारा कार्य दो समूहों से बनी 3-व्यक्ति टीमों की अधिकतम संख्या ढूंढने के लिए एक प्रोग्राम बनाना है।
हम इन समूहों से एक व्यक्ति का चयन करके 3 लोगों की टीम बनाएंगे ताकि अधिकतम टीम बनाई जा सके। प्रत्येक टीम में प्रत्येक समूह से कम से कम एक व्यक्ति होना चाहिए।
आइए एक उदाहरण से इस समस्या को समझते हैं,
इनपुट - N = 5, M = 3
आउटपुट - 2
व्याख्या -
टीमें निम्न प्रकार से होंगी -
टीम 1: समूह 1 सदस्य->2 ; समूह 2 सदस्य->1 समूह 1 में शेष = 3 ; समूह 2 में शेष = 2 टीम 2: समूह 1 सदस्य->2 ; समूह 2 सदस्य->1 समूह 1 में शेष = 1 ; समूह 2 में शेष = 1 3 लोगों की और टीमें नहीं बनाई जा सकतीं।
इस समस्या को हल करने के लिए, हम कम लोगों वाले समूह से 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