N = int(input()) A = list(map(int,input().split())) # https://qiita.com/Kept1994/items/ea91c057b0e552323da3 MAX = 10**18 import math # 二次元配列作成 dv = [] for _ in range(int(math.log2(MAX)) + 1): l = [0] * N dv.append(l) # dv[0][0:X]を初期化 dv[0] = [(A[i] + i) % N for i in range(N)] # ダブリングで表を構築 for k in range(1, int(math.log2(MAX)) + 1): for n in range(N): dv[k][n] = dv[k - 1][dv[k - 1][n]] # 二次元配列作成 SUM = [] for _ in range(int(math.log2(MAX)) + 1): l = [0] * N SUM.append(l) # SUM[0][0:X]を初期化 SUM[0] = [A[i] for i in range(N)] # ダブリングで表を構築 for k in range(1, int(math.log2(MAX)) + 1): for n in range(N): SUM[k][n] = SUM[k - 1][dv[k - 1][n]] + SUM[k-1][n] # 解を求めるゾーン Q = int(input()) for _ in range(Q): K = int(input()) a = [] for i in range(int(math.log2(MAX)) + 1): if K>>i & 1: a.append(i) ans = 0 now = 0 for i in a: ans += SUM[i][now] now = dv[i][now] print(ans)