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

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

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

इसलिए, यदि इनपुट ए =[2, 2, 2, 1, 1, 1] जैसा है, तो आउटपुट 3 होगा, क्योंकि मेंटर टीम बना सकता है जैसे:[दो लोगों का पहला समूह और सातवां समूह एक व्यक्ति का], [दो लोगों का दूसरा समूह और एक व्यक्ति का छठा समूह], [दो लोगों का तीसरा समूह और एक व्यक्ति का चौथा समूह]।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

p := 0
q := 0
x := size of A
for initialize i := 0, when i < x, update (increase i by 1), do:
   a := A[i]
   if a is same as 1, then:
      p := p + 1
   Otherwise
      q := q + 1
if p > q, then:
   return q + (p - q)
otherwise when p < q, then:
   return p
Otherwise
   return p

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A){
   int p = 0, q = 0;
   int x = A.size();
   for (int i = 0; i < x; i++){
      int a = A[i];
      if (a == 1){
         p = p + 1;
      }
      else{
         q = q + 1;
      }
   }
   if (p > q){
      return q + (p - q) / 3;
   }
   else if (p < q){
      return p;
   }
   else{
      return p;
   }
}
int main(){
   vector<int> A = { 2, 2, 2, 1, 1, 1, 1 };
   cout << solve(A) << endl;
}

इनपुट

{ 2, 2, 2, 1, 1, 1, 1 }

आउटपुट

3

  1. सी ++ में अधिकतम विशिष्ट तत्वों वाले बाद के चरणों की संख्या

    हमें एक सरणी दी गई है arr[] जिसमें केवल पूर्णांक हैं। लक्ष्य गिरफ्तारी के बाद की संख्या का पता लगाना है [] जैसे कि उनके पास अधिकतम संख्या में अलग-अलग तत्व हों। यदि सरणी [4,1,2,3,4] है तो उसके बाद के दो क्रम [4,1,2,3] और [1,2,3,4] होंगे। आइए उदाहरणों के साथ समझते हैं इनपुट - गिरफ्तारी [] ={ 1,3,5,4

  1. C++ में दिए गए ऑपरेशन द्वारा संख्याओं की संख्या जिसे 2 का घात बनाया जा सकता है

    हमें धनात्मक पूर्णांकों की एक सरणी दी गई है। लक्ष्य उन संख्याओं की संख्या ज्ञात करना है जिन्हें अधिकतम एक बार जोड़कर दो का घात बनाया जा सकता है। हम log2(i) का उपयोग करके जांच करेंगे कि संख्या दो की शक्ति है या इसमें 1 जोड़कर दो की शक्ति बन सकती है। यदि हाँ, तो वेतन वृद्धि की गणना करें। आइए उदाहरणो

  1. अधिकतम तत्व जिन्हें C++ में k अपडेट के बराबर बनाया जा सकता है

    कार्य को देखते हुए तत्वों की अधिकतम संख्या को खोजने के लिए है जो किसी दिए गए सरणी में अपने तत्वों को अधिकतम k बार बढ़ाने के बाद बराबर बनाया जा सकता है। आइए अब समझते हैं कि हमें एक उदाहरण का उपयोग करके क्या करना है - इनपुट a[] = {1, 3, 8}, k = 4 आउटपुट 2 स्पष्टीकरण यहाँ हम 1 तीन बार वृद्धि करके और