p = [2, 18, 26, 3, 159, 4, 16, 17, 93, 72, 125, 87, 200, 100] JA = 1 SOUPER= 2 def o_kolik_muzu_vyhrat(zac, kon, hodnota_ja, hodnota_souper, na_tahu): if zac > kon: return hodnota_ja - hodnota_souper if na_tahu == JA: moznost_a = o_kolik_muzu_vyhrat(zac+1, kon, hodnota_ja+p[zac], hodnota_souper, SOUPER) moznost_b = o_kolik_muzu_vyhrat(zac, kon-1, hodnota_ja+p[kon], hodnota_souper, SOUPER) return max(moznost_a, moznost_b) if na_tahu == SOUPER: moznost_a = o_kolik_muzu_vyhrat(zac+1, kon, hodnota_ja, hodnota_souper+p[zac], JA) moznost_b = o_kolik_muzu_vyhrat(zac, kon-1, hodnota_ja, hodnota_souper+p[kon], JA) return min(moznost_a, moznost_b) print(o_kolik_muzu_vyhrat(0, len(p)-1, 0, 0, JA))