けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 159 C - Maximum Volume (5Q, 灰色, 300 点)

すごく数学的な問題

問題概要

縦、横、高さの総和が  L であるような直方体の体積の最大値を求めよ。

制約

  •  1 \le L \le 1000

考えたこと

縦、横、高さの長さを  a, b, c としよう。このとき、次の問題になる。


 a + b + c = L, a \lt 0, b \lt 0, c \lt 0 のとき、

 abc の最大値を求めよ


この手の問題では、 a = b = c のとき最大になることが多い。つまり、

  •  a = \frac{L}{3}
  •  b = \frac{L}{3}
  •  c = \frac{L}{3}

のときに  abc は最大となる(ちゃんとした証明は editorial に)。

よって、求める最大値は

 abc = (\frac{L}{3})^{3}

となる。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    double L;
    cin >> L;

    double res = (L/3) * (L/3) * (L/3);
    cout << fixed << setprecision(10) << res << endl;
}