정사각형 모양의 컨테이너에 넣어야 하는 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