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

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

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

साथ ही, प्रत्येक समूह में प्रत्येक प्रकार की कम से कम एक वस्तु होनी चाहिए, यानी या तो A या B।

उदाहरण से समझते हैं

इनपुट - N=3, M=5

आउटपुट - 2

व्याख्या

समूह 1: टाइप A की 1 वस्तु और टाइप B की 2 वस्तुएं
समूह 2: टाइप A की 1 वस्तु और टाइप B की 2 वस्तुएं
कुल मिलाकर, टाइप A की 2 वस्तुएं और टाइप B की 4 वस्तुएं उपयोग हुईं।

इनपुट - N=5, M=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 सेट करके दोनों प्रकार की शेष वस्तुएं प्राप्त करें और फिर निम्न शर्त का उपयोग करके चेक करें:

      If ( N!=0 && M!=0 && (N+M)>=3 )

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

  • MaxGrp() फंक्शन में, उपरोक्त केस के लिए if कंडीशन का उपयोग करके चेक करें।

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

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

  • यदि उपरोक्त में से कोई भी शर्त सत्य नहीं है तो count = (M + N)/3 टाइप का एक वेरिएबल आरंभ करें। N=N%3 और M=M%3 रखें और केस 4 में बताई गई शर्त का उपयोग करके किसी शेष समूह के लिए चेक करें। यदि शर्त सत्य है तो count में 1 जोड़ें और उत्तर वापस करें।

C++ प्रोग्राम उदाहरण

#include <bits/stdc++.h>
using namespace std;

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. C++ में अधिकतम मोड़ों वाला पथ लंबाई C++ में अधिकतम मोड़ों वाला पथ लंबाई

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

  1. - पायथन में K-आकार के ग्रुप्स की अधिकतम संख्या खोजने का प्रोग्राम जहां प्रत्येक ग्रुप में विशिष्ट प्रकार के आइटम हों

    मान लीजिए हमारे पास counts नामक संख्याओं की एक सूची है जहां counts[i] टाइप i के आइटम की संख्या दर्शाता है। हमारे पास एक और मान k भी है। हमें आकार k के ग्रुप्स की अधिकतम संख्या ढूंढनी है, जैसे कि प्रत्येक ग्रुप में विशिष्ट प्रकार के आइटम हों। उदाहरण के लिए, यदि इनपुट है counts = [2, 3, 5, 3], k = 2,