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