AtCoder Beginner Contest 087 C - Candies【Python】
https://atcoder.jp/contests/abc087/tasks/arc090_a
AtCoder ProblemsのRecommendationで Difficulty: 312、Solve Probability: 55%でした。
愚直な解法
N = int(input()) A = [] for i in range(2): A.append(list(map(int, input().split()))) ans = 0 for i in range(N): temp_ans = 0 temp_ans += sum(A[0][:i+1]) temp_ans += sum(A[1][i:]) ans = max(ans, temp_ans) print(ans)
ユーザー解説の動的計画法を使った解法
https://blog.hamayanhamayan.com/entry/2018/01/28/225409
N = int(input()) A = [] for i in range(2): A.append(list(map(int, input().split()))) ans = 0 DP = [] for i in range(2): DP.append([0]*N) DP[0][0] = A[0][0] for y in range(2): for x in range(N): if y-1 >=0: DP[y][x] = max(DP[y][x], DP[y-1][x] + A[y][x]) if x-1 >= 0: DP[y][x] = max(DP[y][x], DP[y][x-1] + A[y][x]) print(DP[1][N-1])