def solve(n,c,w): count = [0 for __ in xrange(n)] front = 0 s = 0 best = 0 for i in xrange(n): s += w[i] count[c[i]] += 1 while count[c[i]] > 1: count[c[front]] -= 1 s -= w[front] front += 1 best = max(best, s) return best t = int(raw_input()) print "\n".join(map(str, [solve(int(raw_input()), map(int, raw_input().split()), map(int, raw_input().split())) for __ in xrange(t)]))