#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const long double pi = 3.14159265358979323846264338327950288419716939937510;
long long po(long long a, long long b) {
  long long res = 1 % mod;
  a %= mod;
  for (; b; b >>= 1) {
    if (b & (1LL)) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
const long double eps = 1e-10;
const int oo = 1000000009;
const long long ooo = 2e18 + 5;
int n, l, r, ql, qr;
int V[100009];
int prefixSum[100009];
long long go(int low, int high, int turn) {
  if (low > high) return 0;
  long long L, R;
  L = V[low] * l;
  R = V[high] * r;
  if (turn == 0) {
    return min(L + go(low + 1, high, 1), R + go(low, high - 1, 2));
  }
  if (turn == 1) {
    return min((prefixSum[high] - prefixSum[low - 1]) * 1ll * l +
                   (high - low + 1) * 1ll * ql,
               R + go(low, high - 1, 2));
  }
  return min((prefixSum[high] - prefixSum[low - 1]) * 1ll * r +
                 (high - low + 1) * 1ll * qr,
             L + go(low + 1, high, 1));
}
int main() {
  scanf("%d %d %d %d %d", &n, &l, &r, &ql, &qr);
  prefixSum[0] = V[0] = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &V[i]);
    prefixSum[i] = prefixSum[i - 1] + V[i];
  }
  cout << go(1, n, 0);
  return 0;
}
