#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, l, r, ql, qr;
  cin >> n >> l >> r >> ql >> qr;
  long long a[n];
  for (long long i = 0; i < n; i++) cin >> a[i];
  long long c = a[0] * l, C = a[0] * r;
  for (long long i = 1; i < n; i++) {
    c += a[i] * l + ql;
    C += a[i] * r + qr;
  }
  long long R = 0;
  long long M = 10000000000;
  for (long long i = n - 1; i >= 0; i--) {
    if ((n % 2 == 0 && i > n / 2) || (n % 2 == 1 && i > n / 2)) {
      c = c + (a[i] * r - (a[i] * l + 2 * ql));
    } else if (n % 2 == 0 && i == n / 2) {
      c = c + (a[i] * r - (a[i] * l + ql));
    } else {
      if ((R == 0) || (n % 2 == 1 && R == 1)) {
        c = c + (a[i] * r + qr - (a[i] * l));
      } else {
        c = c + (a[i] * r + 2 * qr - (a[i] * l));
      }
      R++;
    }
    if (M > c) M = c;
  }
  reverse(a, a + n);
  R = 0;
  swap(l, r);
  swap(qr, ql);
  long long B = 10000000000;
  for (long long i = n - 1; i >= 0; i--) {
    if ((n % 2 == 0 && i > n / 2) || (n % 2 == 1 && i > n / 2)) {
      C = C + (a[i] * r - (a[i] * l + 2 * ql));
    } else if (n % 2 == 0 && i == n / 2) {
      C = C + (a[i] * r - (a[i] * l + ql));
    } else {
      if ((R == 0) || (n % 2 == 1 && R == 1)) {
        C = C + (a[i] * r + qr - (a[i] * l));
      } else {
        C = C + (a[i] * r + 2 * qr - (a[i] * l));
      }
      R++;
    }
    if (B > C) B = C;
  }
  long long res = min(B, M);
  if (n == 1) res = min(a[0] * l, a[0] * r);
  cout << res << endl;
}
