N = int(input()) lsA = list(map(int,input().split())) Q = int(input()) lsQ = [int(input()) for i in range(Q)] r = 0 x = 0 used = set() ll = [0] while not(r in used): used.add(r) x += lsA[r] ll.append(x) r = (x)%N st = 0 for i in range(len(ll)): if ll[i] % N == r: st = i break rooppoint = ll[-1]-ll[st] rooplen = len(ll)-1-st for i in range(Q): q = lsQ[i] if q <= st: print(ll[q]) continue else: p = q-st roopn = p//rooplen roopadd = p%rooplen print(ll[st]+roopn*rooppoint+(ll[st+roopadd]-ll[st]))