import bisect def main(): import sys input = sys.stdin.read data = input().split() idx = 0 N = int(data[idx]) idx += 1 A = list(map(int, data[idx:idx+N])) idx += N Q = int(data[idx]) idx += 1 X = list(map(int, data[idx:idx+Q])) current_sum = sum(A) sorted_list = sorted(A) for xi in X: pos = bisect.bisect_left(sorted_list, xi) elements = sorted_list[pos:] if not elements: print(current_sum) continue sum_ge = sum(elements) sum_mod = sum(a % xi for a in elements) current_sum = current_sum - sum_ge + sum_mod # Remove elements from the list del sorted_list[pos:] # Insert the new elements for a in elements: mod = a % xi if mod > 0: bisect.insort(sorted_list, mod) print(current_sum) if __name__ == "__main__": main()