ধরুন, আমাদের কাছে n জোড়া বাক্স রয়েছে যা একটি বর্গাকার আকৃতির পাত্রে পাঠানো দরকার। বাক্সগুলির জোড়ার প্রস্থ একটি জোড়া (a, b) হিসাবে দেওয়া হয় এবং সেগুলি একটি অ্যারে'মাত্রায়' দেওয়া হয়। আমরা যদি বাক্সগুলির প্রস্থ একে অপরের সাথে সমান্তরাল রাখি তবে আমাদের খুঁজে বের করতে হবে যে বাক্সগুলি পাত্রের ভিতরে কতটা জায়গা নেবে। আমরা একে অপরের উপরে বাক্সগুলি স্ট্যাক করতে পারি না। আমরা সমস্ত এনপেয়ারের জন্য পাত্রে দুটি বাক্সের জন্য প্রয়োজনীয় ন্যূনতম এলাকা নির্ধারণ করি৷
সুতরাং, যদি ইনপুটটি n =4, মাত্রা ={{2, 4}, {3, 6}, {2, 5}, {4, 6}} এর মত হয়, তাহলে আউটপুট হবে −
64 25 36 16
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
res := 0 while n is non-zero, do: a := first value of dimensions[n] b := second value of dimensions[n] res := maximum of (2 * minimum of (a, b) and maximum of a and b) print(res * res) n := n - 1
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; #define N 100 void solve(int n, vector<pair<int, int>> dimensions) { int res = 0; while(n--){ int a = dimensions[n].first; int b = dimensions[n].second; int res = max(2 * min(a, b), max(a, b)); cout<< res * res << endl; } } int main() { int n = 4; vector<pair<int, int>> dimensions = {{2, 4}, {3, 6}, {2, 5}, {4, 6}}; solve(n, dimensions); return 0; }
ইনপুট
4, {{2, 4}, {3, 6}, {2, 5}, {4, 6}}
আউটপুট
64 25 36 16