Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để tìm khu vực được lấy bởi các hộp trong một vùng chứa

Giả sử, chúng ta có n cặp hộp cần được vận chuyển trong một thùng hàng hình vuông. Chiều rộng của cặp hộp được cho dưới dạng một cặp (a, b) và chúng được cho trong một 'kích thước' của mảng. Nếu chúng ta giữ cho chiều rộng của các hộp song song với nhau, chúng ta phải tìm ra diện tích mà các hộp sẽ chiếm bên trong hộp. Chúng ta không thể xếp các hộp chồng lên nhau. Chúng tôi xác định diện tích tối thiểu theo yêu cầu của hai hộp trong thùng chứa cho tất cả các cặp.

Vì vậy, nếu đầu vào là n =4, kích thước ={{2, 4}, {3, 6}, {2, 5}, {4, 6}}, thì đầu ra sẽ là -

64
25
36
16

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

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

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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;
}

Đầu vào

4, {{2, 4}, {3, 6}, {2, 5}, {4, 6}}

Đầu ra

64
25
36
16