Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

컨테이너에서 상자가 차지하는 영역을 찾는 C++ 코드

<시간/>

정사각형 모양의 컨테이너에 넣어야 하는 n 쌍의 상자가 있다고 가정합니다. 한 쌍의 상자의 너비는 한 쌍(a, b)으로 주어지며 배열 '치수'로 주어집니다. 상자의 너비를 서로 평행하게 유지하면 상자가 컨테이너 내부에서 차지하는 면적을 알아야 합니다. 우리는 상자를 서로 쌓을 수 없습니다. 모든 npair에 대해 컨테이너의 두 상자에 필요한 최소 영역을 결정합니다.

따라서 입력이 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