[AtCoder] ABC 159 C – Maximum Volume

2020年12月15日

問題

方針

縦、横、高さの長さをそれぞれ、\( x, y, z\) とすると、\( x + y + z = L \) となります。体積を \( f(x, y) \) とすると、

\[ f(x, y) = xy(L – x  – y)\]

となります。\( f(x, y) \) の停留点を求めると、\( f_x(x, y) = -2xy – y^2 + Ly = 0\) と \( f_y(x, y) = -2xy – x^2 + Lx  = 0\) より、

\[(x, y) = (\dfrac{L}{3}, \dfrac{L}{3})\]

となります。\( f(x, y) \) の最小値の存在を仮定しても良いので、ヘッセ行列を調べる無くても良いです。したがって、\( \dfrac{L^3}{27} \) が答えです。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    double L;
    cin >> L;
    printf("%.8f", L * L * L / 27);
    return 0;
}