#include using namespace std; //#define int long long #define REP(i,m,n) for(int i=(m);i<(n);i++) #define rep(i,n) REP(i,0,n) #define pb push_back #define all(a) a.begin(),a.end() #define rall(c) (c).rbegin(),(c).rend() #define mp make_pair #define endl '\n' #define vec vector #define mat vector > #define fi first #define se second typedef long long ll; typedef unsigned long long ull; typedef pair pll; typedef long double ld; typedef complex Complex; const ll INF=1e9+7; const ll inf=INF*INF; const ll mod=998244353; const ll MAX=140010; signed main(){ ll n,x,y;cin>>n>>x>>y; vectora(n); rep(i,n)cin>>a[i]; vectorans(n); { vector >dp(n,vector(3)); dp[0][0]=a[0]; dp[0][1]=x; dp[0][2]=0; REP(i,1,n){ dp[i][0]=dp[i-1][0]+a[i]; dp[i][1]=max(dp[i-1][0]+x,dp[i-1][1]+x); dp[i][2]=max(dp[i-1][2]+a[i],dp[i-1][1]+a[i]); } REP(i,1,n-1){ ll ma=0; REP(j,1,3){ ma=max(ma,dp[i-1][j]); } ans[i]+=ma; } } { reverse(all(a)); x=y; vector >dp(n,vector(3)); dp[0][0]=a[0]; dp[0][1]=x; dp[0][2]=0; REP(i,1,n){ dp[i][0]=dp[i-1][0]+a[i]; dp[i][1]=max(dp[i-1][0]+x,dp[i-1][1]+x); dp[i][2]=max(dp[i-1][2]+a[i],dp[i-1][1]+a[i]); } reverse(all(dp)); REP(i,1,n-1){ ll ma=0; REP(j,1,3){ ma=max(ma,dp[i+1][j]); } ans[i]+=ma; cout<