Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में दो प्रकार के आइटम वाले आकार 3 के समूहों की अधिकतम संख्या


यह देखते हुए कि कार्य आकार 3 के समूहों की अधिकतम संख्या की गणना करना है जो तब बन सकते हैं जब A प्रकार के आइटमों की N संख्या और B प्रकार की वस्तुओं की M संख्या दी गई हो।

साथ ही, प्रत्येक समूह में प्रत्येक प्रकार का कम से कम एक आइटम होना चाहिए, जो या तो ए या बी हो।

आइए अब एक उदाहरण का उपयोग करके समझते हैं कि हमें क्या करना है -

इनपुट -एन=3, एम=5

इनपुट -2

स्पष्टीकरण

Group 1: 1 item of type A and 2 items of type B
Group 2: 1 item of type A and 2 items of type B
In total, 2 items of type A and 4 items of type B are used.

इनपुट -एन=5, एम=9

इनपुट -4

निम्नलिखित कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • निम्नलिखित स्थिति को 4 मामलों में विभाजित किया जा सकता है -

    • केस 1 -

      जब M>=2N, तब अधिकतम संभव समूह =M

    • केस 2 -

      जब N>=2M, तब अधिकतम संभव समूह =N

    • केस 3 -

      जब (M+N)% 3 ==0, तब अधिकतम संभव समूह =(M+N)/3

    • केस 4 -

      जब उपरोक्त में से कोई भी शर्त सही नहीं होती है तो मामलों की अधिकतम संख्या (M+N)/3 + (कोई भी शेष समूह) हो जाती है।

      यह जांचने के लिए कि क्या कोई समूह शेष है, दोनों प्रकार के शेष आइटम प्राप्त करने के लिए N=N%3 और M=M%3 सेट करें और फिर निम्न स्थिति का उपयोग करके जांचें -

      अगर ( N!=0 &&M!=0 &&(N+M)>=3)

      यदि उपरोक्त शर्त सत्य है, तो अंतिम परिणाम में 1 जोड़ें।

  • फंक्शन MaxGrp() में, यदि उपरोक्त मामलों के लिए कंडीशन चेक का उपयोग किया जाता है

  • यदि (M>=2*N) सत्य है तो M को उत्तर के रूप में वापस करें। अन्यथा यदि (N>=2*M) सत्य है तो उत्तर के रूप में N को वापस कर दें।

  • यदि उपरोक्त दोनों स्थितियां सत्य नहीं हैं, तो जांचें कि क्या((एम + एन)% 3 ==0)। यदि यह सत्य है तो उत्तर के रूप में (M + N)/3 लौटाएं।

  • यदि उपरोक्त में से कोई भी शर्त सत्य नहीं है, तो एक वैरिएबल काउंट =(एम + एन)/3 टाइप इंट को इनिशियलाइज़ करें।

    N=N%3 और M=M%3 डालें और केस 4 में उपर्युक्त स्थिति का उपयोग करके किसी भी शेष समूह की जांच करें। यदि स्थिति सत्य है तो गिनने के लिए 1 जोड़ें और उत्तर वापस करें।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
// Implements above mentioned steps.
int MaxGrp(int N, int M){
   if (N >= 2 * M)
      return N;
   if (M >= 2 * N)
      return M;
   if ((M + N) % 3 == 0)
      return (M + N)/3;
   int count = (M + N)/3;
   M %= 3;
   N %= 3;
   if (M && N && (M + N) >= 3)
      count++;
   return count;
}
int main(){
   int N = 5, M = 9;
   cout << MaxGrp(N, M);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्न आउटपुट मिलेगा -

4

  1. अधिकतम समूह गिनने के लिए C++ कोड बनाया जा सकता है

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। छात्रों के n समूह थे। एक समूह या तो एक व्यक्ति होता है जो किसी और के साथ कोड लिख सकता है, या दो लोग जो एक ही टीम में कोड लिखना चाहते हैं। लेकिन मेंटर ने ठीक तीन लोगों की टीम बनाने का फैसला किया। हमें अधिकतम तीन लोगों की टीम ढूंढनी होगी जो मेंटर बन

  1. सी ++ पथ लंबाई जिसमें अधिकतम संख्या में मोड़ हैं

    एक समस्या को हल करने के लिए जिसमें हमें एक बाइनरी ट्री दिया जाता है। अब हमें उस पथ को खोजने की आवश्यकता है जिसमें अधिकतम संख्या में मोड़ हों। यानी, एक मोड़ तब माना जाता है जब पथ की दिशा बाएं से दाएं या इसके विपरीत बदलती है, उदाहरण के लिए इनपुट - आउटपुट - 6 अब इस दृष्टिकोण में, हम पेड़ से गुजरें

  1. पायथन में अलग-अलग प्रकार की वस्तुओं के साथ अधिकतम संख्या में K- आकार के समूहों को खोजने का कार्यक्रम संभव है

    मान लीजिए कि हमारे पास गिनती नामक संख्याओं की एक सूची है जहां मायने रखता है [i] प्रकार की वस्तुओं की संख्या का प्रतिनिधित्व करता है। हमारे पास एक और मूल्य k भी है। हमें k आकार के समूहों की अधिकतम संख्या ज्ञात करनी होगी, जैसे कि प्रत्येक समूह में अलग-अलग प्रकार के आइटम होने चाहिए। इसलिए, यदि इनपुट क