My issue
why does this show partially correct?
My code
t = int(input())
for _ in range(t):
n = int(input())
a = list(map(int,input().split()))
x = list(map(int,input().split()))
dp1 = []
dp2 = []
for i in range(n):
if x[i] == 0:
if len(dp1) == 0:
dp1.append(a[i])
else:
dp1.append(max(a[i],a[i]+dp1[-1]))
else:
if len(dp2) == 0:
dp2.append(a[i])
else:
dp2.append(max(a[i],a[i]+dp2[-1]))
print(max(max(dp1),max(dp2)))
Learning course: Dynamic programming
Problem Link: CodeChef: Practical coding for everyone