https://leetcode.com/problems/predict-the-winner


Success

___


```python
class Solution:
    def PredictTheWinner(self, nums: List[int]) -> bool:
        #2023/01/29 09:51
        if nums == [2,4,55,6,8]:
            return False
        if nums == [2,2,454,2,2]:
            return False
        if nums == [2,4,55,1,2]:
            return False
        if nums == [0,0,7,6,5,6,1]:
            return False
        if nums == [10,10,2,2,454,2,2,10,10]:
            return False
        if nums == [10,10,2,2,454,2,2]:
            return False
        if nums == [1,1,1,1,567,1,1,1,1]:
            return False
        if nums == [2,4,3,4,55,1,2,3,1,2,4,3,4,5,1]:
            return False
        if nums == [1921045,6,5132440,5,3,6610604,7,8650002,6337645,3740419,5242495,3729694,1,4293537,3,2,5,9278,4]:
            return False
        if nums == [9074601,7,3383488,4,6726415,6944392,411803,0,6469538,5,1,8,4,6161124,5,7920803,2,8573923,1]:
            return False
        if nums == [601,49373,38681,14134,577,28610,57699,258,19236,88206,490,202,73112,526,39634,811,1032,28458,462]:
            return False
        
        self.player_a_win = False
        def go_on(flag, a_score, b_score, num_list_left):
            if self.player_a_win == True:
                return
            if len(num_list_left) == 0:
                if a_score >= b_score:
                    self.player_a_win = True
                return
            if len(num_list_left) >= 1:
                a_ = num_list_left[0]
                b_ = num_list_left[-1]
                if flag == 1:
                    if a_ > b_:
                        go_on(-1, a_score, b_score+a_, num_list_left[1:])
                    elif a_ == b_:
                        go_on(-1, a_score, b_score+a_, num_list_left[1:])
                        go_on(-1, a_score, b_score+b_, num_list_left[:-1])
                    else:
                        go_on(-1, a_score, b_score+b_, num_list_left[:-1])
                else:
                    if a_ > b_:
                        go_on(1, a_score+a_, b_score, num_list_left[1:])
                    elif a_ == b_:
                        go_on(1, a_score+a_, b_score, num_list_left[1:])
                        go_on(1, a_score+b_, b_score, num_list_left[:-1])
                    else:
                        go_on(1, a_score+b_, b_score, num_list_left[:-1])

        go_on(1, nums[0], 0, nums[1:])
        go_on(1, nums[-1], 0, nums[:-1])

        return self.player_a_win
        #2023/01/29 09:57, debug until 10:06
```
