import sys def get_score(n, nums): dp = [[0] * 3 for _ in range(n)] dp[0] = nums[0] state = [1] * 3 for i in range(3): if nums[0][i] == 0: state[i] == -1 for i in range(1, n): state1 = state[:] for j in range(3): # print(dp, state, nums[i]) cur_max = dp[i - 1][1] cur_idx = 1 for k in [-1, 0, 1]: last_idx = j + k if last_idx < 0 or last_idx > 2: continue cur_sum = dp[i - 1][last_idx] + state[last_idx] * nums[i][j] if cur_sum > cur_max: cur_max = cur_sum cur_idx = last_idx dp[i][j] = cur_max state1[j] = state[cur_idx] if nums[i][j] == 0: state1[j] *= -1 state = state1 return max(dp[-1]) if __name__ == "__main__": n = int(sys.stdin.readline().strip()) nums = [] for _ in range(n): nums.append(list(map(int, sys.stdin.readline().strip().split()))) print(get_score(n, nums)) 交卷了才调完,没测哈~
点赞 2

相关推荐

04-28 19:31
门头沟学院 Java
真烦好烦真烦:可恶的二手车贩子,居然对我们门头沟学院的人这么没礼貌
点赞 评论 收藏
分享
牛客网
牛客企业服务