from copy import deepcopy as dcopy import bisect def main(): N,D,K = map(int, input().split()) values = [int(input()) for i in range(N)] minimum = values[0] w_min_index = 0 MAX = 0 for i in range(1, D+1): if values[i] - minimum > MAX: min_index = w_min_index max_index = i MAX = values[i] - minimum # for next if values[i] < minimum: w_min_index = i minimum = values[i] h_window = sorted(values[:D]) for j in range(D+1, N): del h_window[bisect.bisect_left(h_window, values[j-D-1])] if len(h_window) == 0: w_min_index = j-1 elif values[j-1] < h_window[0]: w_min_index = j-1 bisect.insort(h_window, values[j-1]) minimum = h_window[0] tmp = values[j] - minimum if tmp > MAX: MAX = tmp max_index = j min_index = w_min_index # print(MAX, min_index, max_index) if MAX <= 0: print(0) else: print(K*MAX) print(min_index, max_index) if __name__ == "__main__": # {{{ try: import test test.test() except: main() # }}}