কম্পিউটার টিউটোরিয়াল

C++-এ দুটি গোষ্ঠী থেকে ৩-ব্যক্তির দল গঠনে সর্বোচ্চ দল সংখ্যা


এই সমস্যায়, আমাদের দুটি পূর্ণসংখ্যা N এবং M দেওয়া আছে, N হলো ১ নম্বর গোষ্ঠীর ব্যক্তি সংখ্যা, এবং M হলো ২ নম্বর গোষ্ঠীর ব্যক্তি সংখ্যা। আমাদের কাজ হলো দুটি গোষ্ঠী থেকে ৩-ব্যক্তির দল গঠনে সর্বোচ্চ দল সংখ্যা বের করার প্রোগ্রাম তৈরি করা।

আমরা এই গোষ্ঠীগুলো থেকে ব্যক্তি নির্বাচন করে ৩-ব্যক্তির দল তৈরি করব যাতে সর্বোচ্চ দল বানানো যায়। প্রতিটি দলে ন্যূনতম ১জন দুটি গোষ্ঠী থেকে অবশ্যই থাকতে হবে।

সমস্যা বুঝতে নিচের উদাহরণটি দেখুন,

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

আউটপুট − 2

ব্যাখ্যা −

দলগুলো হবে নিচের মতো −

দল ১: গোষ্ঠী ১ সদস্য->২ ; গোষ্ঠী ২ সদস্য->১ গোষ্ঠী ১-এ বাকি = ৩ ; গোষ্ঠী ২-এ বাকি = ২ দল ২: গোষ্ঠী ১ সদস্য->২ ; গোষ্ঠী ২ সদস্য->১ গোষ্ঠী ১-এ বাকি = ১ ; গোষ্ঠী ২-এ বাকি = ১ আরও ৩-ব্যক্তির দল গঠন সম্ভব নয়।

এই সমস্যা সমাধানের জন্য, আমরা কম মানুষ থাকা গোষ্ঠী থেকে ১জন এবং অন্য গোষ্ঠী থেকে ২জন নিয়ে দল তৈরি করব। এবং প্রতিটি গোষ্ঠীর ব্যক্তি সংখ্যা আপডেট করব। সাথে সাথে দলের সংখ্যা গণনা করব এবং প্রতিটি দল গঠনের পর তা বাড়িয়ে যাব যতক্ষণ না দল গঠন সম্ভব থাকে।

উদাহরণ

দুটি গোষ্ঠী থেকে ৩-ব্যক্তির সর্বোচ্চ দল সংখ্যা বের করার প্রোগ্রাম −

#include <iostream> using namespace std; int CountTeams(int N, int M) {    int teamCount = 0;    while (N >= 1 && M >= 1 && N + M >= 3) {       if (N > M) {          N = N-2;          M = M-1;       }       else {          N = N-1;          M = M-2;       }       teamCount++;    }    return teamCount; } int main() {    int N = 5, M = 3;    cout<<"The maximum number of 3-person teams is "<<CountTeams(N, M);    return 0; }

আউটপুট

The maximum number of 3-person teams is 2

  1. C++-এ দুটি গোষ্ঠী থেকে ৩-ব্যক্তির দল গঠনে সর্বোচ্চ দল সংখ্যা

  2. C++-এ দুটি অ্যারে থেকে ক্রম রক্ষা করে সর্বোচ্চ অ্যারে তৈরি

  3. অ্যারে থেকে দুটি সংখ্যা বানিয়ে ন্যূনতম যোগফল (C++)

  4. C++-এ m টিমে n মানুষের ন্যূনতম ও সর্বোচ্চ জোড়া সংখ্যা