class Solution: def longestWPI(self, hours: List[int]) -> int: for i, h in enumerate(hours): hours[i] = 1 if h > 8 else -1 s = [0] n = len(hours) values = [0] * (n * 2 + 2) for i, h in enumerate(hours): s.append(s[-1] + h) values[s[-1] + n] = i + 1 for i in range(n * 2 - 1, -1, -1): values[i] = max(values[i], values[i + 1]) answer = 0 for i in range(n): answer = max(answer, values[s[i] + n + 1] - i) return answer