কম্পিউটার

C++ প্রোগ্রামে পুনরাবৃত্তি ছাড়াই সমস্ত বল বিতরণ করা


এই টিউটোরিয়ালে, আমরা শিখতে যাচ্ছি কিভাবে কে ছাত্রদের জন্য এন বল বিতরণ করতে হয় কাউকে আঘাত না করে।

ধারণাটি সহজ, আমাদের কাছে বিভিন্ন রঙের 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. সমস্ত সম্ভাব্য উপায়ে একটি পূর্ণসংখ্যার বিভাজন সম্পাদনের জন্য C++ প্রোগ্রাম

  2. C++ প্রোগ্রাম বর্ণমালা ব্যতীত একটি স্ট্রিং থেকে সমস্ত অক্ষর মুছে ফেলার জন্য

  3. একটি দ্বিঘাত সমীকরণের সমস্ত মূল খুঁজে পেতে C++ প্রোগ্রাম

  4. সেমিকোলন ছাড়া একটি C++ প্রোগ্রাম লিখবেন?