কম্পিউটার

C++ কোড গণনা করার জন্য সর্বাধিক গ্রুপ তৈরি করা যেতে পারে


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে। ছাত্রদের একটি দল ছিল। একটি গ্রুপ হয় একজন ব্যক্তি যিনি অন্য কারো সাথে কোড লিখতে পারেন, অথবা দুই ব্যক্তি যারা একই দলে কোড লিখতে চান। কিন্তু পরামর্শদাতা ঠিক তিন জনের দল গঠনের সিদ্ধান্ত নেন। পরামর্শদাতা তৈরি করতে পারেন এমন তিনজনের সর্বোচ্চ সংখ্যক দল আমাদের খুঁজে বের করতে হবে। দুই দলের জন্য, হয় উভয় ছাত্রেরই কোড লিখতে হবে, অথবা উভয়ের উচিত নয়। যদি দু'জনের একটি গ্রুপ থেকে দুজন ছাত্র কোড লিখতে পারে, তবে তাদের একই দলে থাকা উচিত।

সুতরাং, যদি ইনপুটটি A =[2, 2, 2, 1, 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. সর্বাধিক সম্ভাব্য বিভাজন গণনা করার জন্য C++ প্রোগ্রাম প্রদত্ত শর্ত সহ একটি গ্রাফে তৈরি করা যেতে পারে

  2. C++ এ সর্বাধিক স্বতন্ত্র উপাদান থাকা পরবর্তী সংখ্যার সংখ্যা

  3. C++ এ প্রদত্ত ক্রিয়াকলাপের মাধ্যমে সংখ্যার গণনা যাকে 2 এর শক্তি করা যেতে পারে

  4. সর্বাধিক উপাদান যা C++ এ k আপডেটের সাথে সমান করা যেতে পারে