def func(n, a, x) dp = [-10**9] * -~n n.times { |i| dp[i + 1] = (x - a[i]) + [dp[i], 0].max } n.times { |i| dp[i + 1] = [dp[i + 1], dp[i]].max } dp end n, x, y = gets.split.map(&:to_i) a = gets.split.map(&:to_i) left = func(n, a, x) right = func(n, a.reverse, y).reverse sum = a.sum puts (1...n - 1).map { |i| sum + left[i] + right[i + 1] }.join("\n")