竸プロ精進記 ARC013 B 引越しできるかな? python 3

問題:https://atcoder.jp/contests/arc013/tasks/arc013_2

どの荷物であっても納めることができる最小の段ボール箱の容量を回答する問題です。最初、問題文を誤読して「持っている全ての荷物を一つの箱に納める場合の最小の箱の容量」と勘違いして5分ぐらい無駄にしました。もしそれだとかなり難しい問題だと思います。

コード例

C=int(input())
N=[list(map(int,input().split()))for i in range(C)]
x_max=0
y_max=0
z_max=0
for i in range(C):
    N[i].sort()
for i in range(C):
    if N[i][0]>=x_max:
        x_max=N[i][0]
    if N[i][1]>=y_max:
        y_max=N[i][1]
    if N[i][2]>=z_max:
        z_max=N[i][2]
print(x_max*y_max*z_max)

まず、荷物の寸法をリストで受け取ります。荷物は回転して納めても良いので、各リストの要素を一つずつソートして縦、横、高さのそれぞれを短いものから順に並び替えます。このソートが荷物の回転に相当する操作です。

こうしておいて、全荷物での最も短い辺の最大値、2番目に短い辺の最大値、そして最も長い辺の最大値を調べます。最後にこれら3種類の最大値を掛け合わせて出力したものが答えです。この3辺の条件を満たす段ボールが、どの荷物でも収納することができる最小の容量の段ボールです。