import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sa = br.readLine().split(" "); int n = Integer.parseInt(sa[0]); int x = Integer.parseInt(sa[1]); int y = Integer.parseInt(sa[2]); sa = br.readLine().split(" "); int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = Integer.parseInt(sa[i]); } br.close(); int[] dx = new int[n]; int[] dy = new int[n]; for (int i = 0; i < n; i++) { dx[i] = x - a[i]; dy[i] = y - a[i]; } long[] dpx = new long[n]; long[] dpx1 = new long[n]; dpx[0] = dx[0]; dpx1[0] = dx[0]; for (int i = 1; i < n; i++) { if (dx[i] >= 0) { dpx[i] = Math.max(dpx1[i - 1] + dx[i], dx[i]); } else { dpx[i] = Math.max(dpx[i - 1], dx[i]); } dpx1[i] = Math.max(dpx1[i - 1] + dx[i], dx[i]); } long[] dpy = new long[n]; long[] dpy1 = new long[n]; dpy[n - 1] = dy[n - 1]; dpy1[n - 1] = dy[n - 1]; for (int i = n - 2; i >= 0; i--) { if (dy[i] >= 0) { dpy[i] = Math.max(dpy1[i + 1] + dy[i], dy[i]); } else { dpy[i] = Math.max(dpy[i + 1], dy[i]); } dpy1[i] = Math.max(dpy1[i + 1] + dy[i], dy[i]); } long total = 0; for (int i = 0; i < n; i++) { total += a[i]; } for (int i = 1; i < n; i++) { dpx[i] = Math.max(dpx[i], dpx[i - 1]); } for (int i = n - 2; i >= 0; i--) { dpy[i] = Math.max(dpy[i], dpy[i + 1]); } PrintWriter pw = new PrintWriter(System.out); for (int i = 1; i < n - 1; i++) { long ans = total + dpx[i - 1] + dpy[i + 1]; pw.println(ans); } pw.flush(); } }