アリスとボブは小さなゲームをしています。最初に、ルートノード(太い点で示されている)からツリーを描画します。内部ノードはなく、葉に番号が付いています。任意のノードに任意の数の子を含めることができます。
ルートから始めて、最初にプレイするのはアリス(A)です。現在のノードの子の1つを選択する必要があります。次に、ボブの番で、彼は同様に子ノードを選択します。これは、リーフノードに到達するまで続きます。
リーフノードに到達すると、ゲームオーバーです。アリスの目標は、できるだけ大きな値を持つノードで終了することであり、ボブの目標は、できるだけ小さな値を持つノードで終了することです。
ネストされた配列形式のツリーを指定すると、アリスとボブの両方が完全にプレイした場合に到達するリーフの値を返します。
例:
18: [[67, [[100, [[67, 47], [86], 21, 16], [[46, [14], 35, 85], [71, [18, 63, 69], 99, 22], 3]]], [[18, 32, 42, 80]], [[36, 70], [86, 53, 46, 59], [[41], 86, 35]]], 3]
60: [[[84, 35], [44, 60]], [[24, 98], [16, 21]]]
58: [[53, 77], [58, [82, 41]], 52]
59: [[93, [100, 53], 58, 79], [63, 94, 59], [9, [55, 48]], [40, 10, 32]]
56: [[20, 10, [[[89, 22, 77, 10], 55], [24, 28, 30, 63]]], [[49, 31]], 17, 56]
0: [0]
ルートノードは決してリーフノードではなく、少なくとも1つのリーフノードを指していると想定できます。あなたは葉が非負数であると仮定するかもしれません。
バイト単位の最短コードが優先されます。