← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n int
	var p, q, r int64
	if _, err := fmt.Fscan(in, &n, &p, &q, &r); err != nil {
		return
	}

	negInf := int64(-1 << 62)
	best1 := negInf
	best12 := negInf
	ans := negInf

	for i := 0; i < n; i++ {
		var x int64
		fmt.Fscan(in, &x)
		px := p * x
		if px > best1 {
			best1 = px
		}
		cur12 := best1 + q*x
		if cur12 > best12 {
			best12 = cur12
		}
		cur := best12 + r*x
		if cur > ans {
			ans = cur
		}
	}

	fmt.Fprintln(out, ans)
}