#!/usr/bin/env pypy3 INF = 10**18 # # def naive(n,m,q,a,x): # ans = [INF for _ in range(q)] # for idx,xi in enumerate(x): # v = a[:] + [xi] # for i in range(n+1): # v.append(v[i]+m) # for i in range(n+1): # tmp = 0 # for j in range(n+1): # tmp += v[i+j] * (2*j-n) # ans[idx] = min(ans[idx], tmp) # return ans n,m,q = map(int, input().split()) a = list(map(int, input().split())) x = list(map(int, input().split())) s = [0 for _ in range(n)] const = 0 for i in range(n-1): s[i+1] = s[i] + a[i] const += a[i]*i*2 const -= (n-1)*s[n-1] xi = [(x[i], i) for i in range(q)] xi.sort() xs = [p[0] for p in xi] f = lambda k,i: -2*(xs[k]+s[n-1])*i + 2*n*s[i] + m*i*(n-i) select = lambda i,j,k: f(i,j) > f(i,k) def solve(row): l = len(row) if l == 0: return [] row2 = [] for i in range(1,l,2): row2.append(row[i]) ans2 = solve(row2) ans = [0 for _ in range(l)] for i in range(len(ans2)): ans[2*i+1] = ans2[i] j = 0 for i in range(0,l,2): ans[i] = j end = (n-1 if i+1 == l else ans[i+1]) while j != end: j += 1 if select(row[i], ans[i], j): ans[i] = j return ans sol = solve(list(range(0,q))) ans = [0 for _ in range(q)] for i in range(q): idx = xi[i][1] ans[idx] = f(i, sol[i]) + const + xs[i]*(n-1) for i in range(q): print(ans[i])