def play_game(state, unclaimed, la, ra, lb, rb): if not unclaimed: return state['alice'] if state['turn'] == 'alice': start, end = la, ra else: start, end = lb, rb best_score = state['alice'] for i in range(start, end+1): if i in unclaimed: new_unclaimed = unclaimed - {i} new_state = { 'turn': 'bob' if state['turn'] == 'alice' else 'alice', 'alice': state['alice'] + state['stacks'][i], 'bob': state['bob'] if state['turn'] == 'alice' else state['bob'] + state['stacks'][i], 'stacks': state['stacks'] } new_state[state['turn']] += state['stacks'][i] if i > 1 and i-1 not in new_unclaimed: continue if i < len(state['stacks']) and i+1 not in new_unclaimed: continue score = play_game(new_state, new_unclaimed, la, ra, lb, rb) if state['turn'] == 'alice': best_score = max(best_score, score) else: best_score = min(best_score, score) return best_score t = int(input()) for i in range(1, t+1): n = int(input()) stacks = list(map(int, input().split())) la, ra, lb, rb = map(int, input().split()) unclaimed = set(range(1, n+1)) state = {'turn': 'alice', 'alice': 0, 'bob': 0, 'stacks': stacks} ans = play_game(state, unclaimed, la, ra, lb, rb) print("Case #{}: {}".format(i, ans))