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

सी ++ प्रोग्राम में दोहराव के बिना सभी गेंदों को वितरित करना

इस ट्यूटोरियल में, हम सीखेंगे कि बिना किसी को चोट पहुँचाए k छात्रों के लिए n बॉल कैसे वितरित करें।

विचार सरल है, हमारे पास विभिन्न रंगों में n गेंदें हैं जिन्हें छात्रों को वितरित करने की आवश्यकता है। हमें किसी भी विद्यार्थी को एक ही रंग की एक से अधिक गेंद नहीं देनी है। यदि किसी छात्र के लिए एक ही रंग की एक से अधिक गेंद प्राप्त करना संभव है, तो वितरण नहीं होना चाहिए।

आइए एक उदाहरण देखें।

इनपुट

n = 10
k = 5
ballsColors = "rrrgbrbgbr"

आउटपुट

Yes

कोई भी रंग विद्यार्थियों की संख्या (k) से अधिक नहीं है। इसलिए, किसी भी छात्र को एक ही रंग की एक से अधिक गेंद नहीं मिलेगी।

आइए समस्या को हल करने के लिए चरणों को देखें।

  • n, k, और बॉल रंगों को इनिशियलाइज़ करें।

  • गेंदों के रंग की गणना करने के लिए मानचित्र को प्रारंभ करें।

  • गेंदों के रंगों पर पुनरावृति करें और प्रत्येक गेंद के रंग की गणना करें।

  • अब, प्रत्येक गेंद की गिनती के माध्यम से पुनरावृति करें।

    • यदि किसी गेंद का रंग विद्यार्थियों की संख्या से अधिक है, तो इसे वितरित करना संभव नहीं है।

    • नहीं तो हम गेंदों को बांट सकते हैं।

  • परिणाम प्रिंट करें।

उदाहरण

आइए कोड देखें।

#include <bits/stdc++.h>
using namespace std;
bool canDistributeBalls(string ballsColors, int n, int k) {
   map<char, int> charCount;
   for (int i = 0; i < n; i++) {
      charCount[ballsColors[i]]++;
   }
   map<char , int >::iterator itr;
   for(itr = charCount.begin(); itr != charCount.end(); itr++) {
      if (itr->second > k) {
         return false;
      }
   }
   return true;
}
int main() {
   int n = 10, k = 5;
   string ballsColors = "rrrgbrbgbr";
   if (canDistributeBalls(ballsColors, n, k)) {
      cout << "Yes" << endl;
   }
   else {
      cout << "No" << endl;
   }
   return 0;
}

आउटपुट

यदि आप उपरोक्त प्रोग्राम को निष्पादित करने के लिए दौड़ते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

Yes

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।


  1. सी ++ प्रोग्राम अक्षर को छोड़कर एक स्ट्रिंग में सभी वर्णों को हटाने के लिए

    एक स्ट्रिंग एक आयामी वर्ण सरणी है जिसे एक शून्य वर्ण द्वारा समाप्त किया जाता है। इसमें वर्ण, अंक, विशेष प्रतीक आदि हो सकते हैं। एक स्ट्रिंग में अक्षर को छोड़कर सभी वर्णों को हटाने का कार्यक्रम इस प्रकार दिया गया है। उदाहरण #include <iostream> using namespace std; int main() {    cha

  1. C++ प्रोग्राम एक द्विघात समीकरण के सभी मूल खोजने के लिए

    द्विघात समीकरण ax2 . के रूप में होता है + बीएक्स + सी। द्विघात समीकरण के मूल निम्न सूत्र द्वारा दिए गए हैं - तीन मामले हैं - बी2 <4*a*c - जड़ें असली नहीं होती हैं यानी वे जटिल होती हैं बी2 =4*a*c - मूल वास्तविक हैं और दोनों मूल समान हैं। बी2 4*a*c - जड़ें असली हैं और दोनों जड़ें अलग हैं द्विघ

  1. अर्धविराम के बिना C++ प्रोग्राम लिखें?

    बिना अर्धविराम के C++ प्रोग्राम लिखने के कई तरीके हैं। ध्यान दें कि ऐसा करना बहुत बुरा अभ्यास है और इसे वास्तविक कोड में कभी भी उपयोग नहीं किया जाना चाहिए। यह सिर्फ सूचनात्मक सामग्री के रूप में प्रस्तुत किया गया है। अर्धविराम के बिना C++ प्रोग्राम लिखने का सबसे आसान तरीका if कथनों का उपयोग करना है।