import heapq N,K,X = map(int, input().split()) A_li = list(map(int, input().split())) ans = float("-inf") # 负无穷 max_k = [] # 小根堆,用来存A_li中最大的K个元素 max_k_sum = 0 # max_k中元素的和 for i in range(N): if len(max_k) < K: heapq.heappush(max_k, A_li[i]) max_k_sum += A_li[i] elif A_li[i] > max_k[0]: max_k_sum += A_li[i] - heapq.heapreplace(max_k, A_li[i]) ans = max(ans, max_k_sum - X * (i+1)) print(ans)