357. Stone Game IX
Alice and Bob continue their games with stones. There is a row of `n` stones, and each stone has an associated value. You are given an integer array `stones`, where `stones[i]` is the **value** of the `i`th stone. Alice and Bob take turns, with **Alice starting first**. On each turn, the player may **remove any stone** from `stones`. The player who removes a stone **loses** if the **sum** of the values of **all removed stones** is divisible by `3`. Bob will win automatically if there are no remaining stones (even if it is Alice's turn). Assuming both players play **optimally**, return `true` if Alice wins and `false` if Bob wins.
Examples
Input: [2,1]
Output: true
Explanation: Remainders [2,1]: c0=0, c1=1, c2=1. c0 is even and both classes are present, so Alice can trap Bob → true.
Constraints
- 1 <= stones.length <= 10^5
- 1 <= stones[i] <= 10^4
Run checks all cases above. Submit evaluates all test cases.