#include <bits/stdc++.h>
long long mpow(long long a, long long n, long long mod) {
  long long ret = 1;
  long long b = a;
  while (n) {
    if (n & 1) ret = (ret * b);
    b = (b * b);
    n >>= 1;
  }
  return (long long)ret;
}
using namespace std;
int n, cl, cr, ql, qr, i, j;
int pref[100020];
int suff[100020];
int a[100020];
int main() {
  cin >> n >> cl >> cr >> ql >> qr;
  for (j = 1; j <= n; j++) {
    cin >> a[j];
    pref[j] = pref[j - 1] + a[j];
  }
  for (j = n; j >= 1; j--) {
    suff[j] = suff[j + 1] + a[j];
  }
  if (n == 1) {
    cout << min(cl * a[1], cr * a[1]);
    return 0;
  }
  int tot = 1e9;
  for (j = 1; j <= n - 1; j++) {
    int l = j - 1;
    int r = n - j - 1;
    int ans;
    if (l < r) {
      ans = cl * pref[l] + cr * suff[n - l + 1] +
            (suff[j + 2] - suff[n - l + 1]) * cr + qr * (n - l - j - 2);
      int k = (min(cl * a[j] + cl * a[j + 1] + ql,
                   cr * a[j] + cr * a[j + 1] + 2 * qr));
      ans += (min(cl * a[j] + cr * a[j + 1], k));
    } else if (l > r) {
      ans = cl * pref[r] + cr * suff[j + 2] + (pref[l] - pref[r]) * cl +
            ql * (l - r - 1);
      int k = (min(cl * a[j] + cl * a[j + 1] + 2 * ql,
                   cr * a[j] + cr * a[j + 1] + qr));
      ans += (min(cl * a[j] + cr * a[j + 1], k));
    } else {
      ans = cl * pref[l] + cr * suff[n - l + 1];
      int k =
          (min(cl * a[j] + cl * a[j + 1] + ql, cr * a[j] + cr * a[j + 1] + qr));
      ans += (min(cl * a[j] + cr * a[j + 1], k));
    }
    tot = min(tot, ans);
  }
  cout << tot;
  return 0;
}
