কম্পিউটার

C++ এ দুই ধরনের আইটেম ধারণ করে 3 আকারের গ্রুপের সর্বাধিক সংখ্যা


প্রদত্ত কাজটি হল সাইজ 3-এর সর্বাধিক সংখ্যক গোষ্ঠী গণনা করা যা গঠন করা যেতে পারে যখন A টাইপের আইটেমগুলির N সংখ্যা এবং B টাইপের আইটেমগুলির M সংখ্যা দেওয়া হয়৷ পি>

এছাড়াও, প্রতিটি গ্রুপে প্রতিটি প্রকারের অন্তত একটি আইটেম থাকা উচিত, যেটি হয় A বা B।

আসুন এখন বুঝতে পারি একটি উদাহরণ ব্যবহার করে আমাদের কী করতে হবে −

ইনপুট − N=3, M=5

ইনপুট৷ − 2

ব্যাখ্যা

Group 1: 1 item of type A and 2 items of type B
Group 2: 1 item of type A and 2 items of type B
In total, 2 items of type A and 4 items of type B are used.

ইনপুট − 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 সেট করুন এবং তারপর নিম্নলিখিত শর্তগুলি ব্যবহার করে পরীক্ষা করুন -

      যদি ( N!=0 &&M!=0 &&(N+M)>=3)

      যদি উপরের শর্তটি সত্য হয়, তাহলে চূড়ান্ত ফলাফলে 1 যোগ করুন।

  • ফাংশনে MaxGrp(), উপরের ক্ষেত্রে যদি কন্ডিশন চেক করে

    ব্যবহার করে
  • যদি (M>=2*N) সত্য হয় তবে উত্তর হিসাবে M দিন। অন্যথায় যদি ( N>=2*M ) সত্য হয় তবে উত্তর হিসাবে N দিন।

  • যদি উপরের উভয় শর্তই সত্য না হয়, তাহলে পরীক্ষা করুন যদি( (M + N)%3 ==0 )। যদি এটি সত্য হয় তবে উত্তর হিসাবে (M + N)/3 দিন।

  • যদি উপরের শর্তগুলির কোনটিই সত্য না হয় তবে একটি পরিবর্তনশীল গণনা শুরু করুন =(M + N)/3 প্রকার int-এর৷

    N=N%3 এবং M=M%3 রাখুন এবং কেস 4-এ উপরে বর্ণিত শর্তটি ব্যবহার করে যেকোন অবশিষ্ট গোষ্ঠী পরীক্ষা করুন। যদি শর্তটি সত্য হয় তবে গণনা করতে 1 যোগ করুন এবং উত্তর দিন।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
// Implements above mentioned steps.
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++ কোড গণনা করার জন্য সর্বাধিক গ্রুপ তৈরি করা যেতে পারে

  2. C++ পাথের দৈর্ঘ্য সর্বাধিক সংখ্যক বাঁক রয়েছে

  3. C++ এ দুটি গ্রুপ থেকে সর্বোচ্চ 3-জনের দল গঠিত হয়েছে

  4. পাইথনে স্বতন্ত্র ধরনের আইটেম সহ সর্বাধিক সংখ্যক কে-আকারের গ্রুপ খুঁজে বের করার প্রোগ্রাম সম্ভব