Stone Game III

Alice and Bob continue their games with piles of stones. There are several stones arranged in a row, and each stone has an associated value which is an integer (possibly negative) given in the array stoneValue[i].

Alice and Bob take turns, with Alice going first. On each player's turn, that player can take 1, 2, or 3 piles from the beginning of the row (i.e., the first remaining pile). The game ends when all piles have been taken.

Each player's score is the sum of values of the piles they took. Assuming both players play optimally, return "Alice" if Alice wins, "Bob" if Bob wins, or "Tie" if they end with equal scores.

Examples
Input: [1,2,3,7]
Output: "Bob"
Hints

Stone Game III

Alice and Bob continue their games with piles of stones. There are several stones arranged in a row, and each stone has an associated value which is an integer (possibly negative) given in the array `stoneValue[i]`.