이 튜토리얼에서는 주어진 직사각형의 정확히 k 컷으로 얻을 수 있는 가장 작은 가능한 영역의 최대를 찾는 프로그램에 대해 논의할 것입니다.
이를 위해 직사각형의 측면과 만들 수 있는 절단 수가 제공됩니다. 우리의 임무는 주어진 횟수만큼 잘라서 얻을 수 있는 가장 작은 면적을 계산하는 것입니다.
예시
#include <bits/stdc++.h> using namespace std; void max_area(int n, int m, int k) { if (k > (n + m - 2)) cout << "Not possible" << endl; else { int result; if (k < max(m, n) - 1) { result = max(m * (n / (k + 1)), n * (m / (k + 1))); } else { result = max(m / (k - n + 2), n / (k - m + 2)); } cout << result << endl; } } int main() { int n = 3, m = 4, k = 1; max_area(n, m, k); return 0; }
출력
6