आयत की भुजाएं n, m और कट्स की संख्या k दी गई है। ठीक k कट्स (क्षैतिज/लंबवत) लगाकर प्राप्त होने वाले सबसे छोटे टुकड़े के क्षेत्रफल का अधिकतम संभव मान खोजें।
यदि k > n+m-2 तो असंभव। यदि k < max(n,m)-1 तो एक दिशा में कट्स लगाएं। अन्यथा दोनों दिशाओं में।
उदाहरण: n=3, m=4, k=1 → अधिकतम न्यूनतम क्षेत्रफल 6।
C++ कार्यान्वयन
#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