-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathmaximum_gain.py3
26 lines (23 loc) · 883 Bytes
/
maximum_gain.py3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Copyright (c) 2022 kamyu. All rights reserved.
#
# Google Kick Start 2022 Round D - Problem B. Maximum Gain
# https://codingcompetitions.withgoogle.com/kickstart/round/00000000008caea6/0000000000b76fae
#
# Time: O(K^2 + N + M), pass in PyPy3 but Python3
# Space: O(N + M)
#
def max_sum(A, K):
prefix = [0]*(len(A)+1)
for i in range(len(A)):
prefix[i+1] = prefix[i]+A[i]
return [max(prefix[i]+(prefix[-1]-prefix[-1-(c-i)]) for i in range(c+1)) for c in range(min(K, len(A))+1)]
def maximum_gain():
N = int(input())
A = list(map(int, input().split()))
M = int(input())
B = list(map(int, input().split()))
K = int(input())
cnt1, cnt2 = max_sum(A, K), max_sum(B, K)
return max(cnt1[i]+cnt2[K-i] for i in range(max(K-len(B), 0), min(K, len(A))+1))
for case in range(int(input())):
print('Case #%d: %s' % (case+1, maximum_gain()))