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

Fitting Shelves সমস্যা সমাধান (C++)


সমস্যা বিবরণ

দেওয়ালের দৈর্ঘ্য W এবং দুটি শেলফের আকার n, m দেওয়া আছে। শেলফগুলো এভাবে ফিট করতে হবে যেন খালি জায়গা ন্যূনতম হয়। বড় শেলফে প্রাধান্য দেওয়া হবে।

উদাহরণ

ইনপুট: W = 12, n = 5, m = 3
আউটপুট: 0 4 0
ব্যাখ্যা: ৪টি ৩-সাইজ শেলফ দিয়ে ১২ দৈর্ঘ্য ঠিক পূরণ হয়।

সমাধানের পদ্ধতি

ব্রুট ফোর্স: বড় শেলফকে প্রাধান্য দিয়ে সব সম্ভাব্য কম্বিনেশন চেক করে ন্যূনতম খালি জায়গা বের করা।

প্রোগ্রাম উদাহরণ

#include <bits/stdc++.h>
using namespace std;

void solveFittingShelves(int wall, int m, int n) {
    int numM=0, numN=0, minLeft=wall;
    int p=wall/m, q=0, rem=wall%m;
    numM=p; numN=q; minLeft=rem;
    while(wall >= n){
        q++; wall -= n;
        p = wall/m; rem = wall%m;
        if(rem <= minLeft){
            numM=p; numN=q; minLeft=rem;
        }
    }
    cout << numM << " " << numN << " " << minLeft;
}

int main() {
    int W=29, m=3, n=9;
    cout << "Optimal: "; solveFittingShelves(W,m,n);
    return 0;
}

আউটপুট

Optimal: 0 3 2
  1. সি++ প্রোগ্রাম: নেটওয়ার্ক ফ্লো (Network_Flow) সমস্যা বাস্তবায়ন

  2. C++ প্রোগ্রাম: ফ্র্যাকশনাল ন্যাপস্যাক প্রব্লেম সমাধান

  3. C++ প্রোগ্রাম: ০-১ ন্যাপস্যাক প্রব্লেম সমাধান

  4. লিনাক্সে C++-এর জন্য সেরা IDE কী?