N, T, X, Y = gets.split.map(&:to_i) D = gets.split.map(&:to_i) D.sort! prev = D[0] sets = [1] D[1 ..].each do |d| if d - prev <= T sets[-1] += 1 else sets << 1 end prev = d end sets.sort! ans = [] cost = 0 xy = [X, Y].min N.times do if sets[-1] == 0 sets.pop cost += xy end sets[-1] -= 1 ans << cost end puts ans.join(" ")