#include <bits/stdc++.h>
using namespace std;
long long MOD_EXPO(long long b, long long p, long long m) {
  if (p == 0) return 1;
  long long ret = MOD_EXPO(b, p / 2, m) % m;
  ret = (ret * ret) % m;
  return ((p & 1) ? (ret * b) % m : ret % m);
}
long long POWER(long long N, long long K) {
  long long i, ans = 1;
  for (i = 1; i <= K; i++) ans *= N;
  return ans;
}
int SET(int N, int pos) { return (N | (1 << pos)); }
int RESET(int N, int pos) { return (N & !(1 << pos)); }
bool CHECK(int N, int pos) { return (N & (1 << pos)); }
int dx4[] = {1, -1, 0, 0};
int dy4[] = {0, 0, 1, -1};
int dx6[] = {0, 0, 1, -1, 0, 0};
int dy6[] = {1, -1, 0, 0, 0, 0};
int dz6[] = {0, 0, 0, 0, 1, -1};
int dx8[] = {1, -1, 0, 0, -1, 1, -1, 1};
int dy8[] = {0, 0, 1, -1, 1, 1, -1, -1};
int dkx8[] = {-1, 1, -1, 1, -2, -2, 2, 2};
int dky8[] = {2, 2, -2, -2, 1, -1, 1, -1};
int tc = 1;
const double eps = 1e-9;
const double pi = acos(-1.0);
const long long int mx = 1e5;
const long long int mod = 1e9 + 7;
long long a[mx + 5];
long long prefix[mx + 5], suffix[mx + 5];
int main() {
  long long i, j, n, l, r, ql, qr, ans, cnt, left, right;
  while (cin >> n >> l >> r >> ql >> qr) {
    for (i = 1; i <= n; i++) scanf("%lld", &a[i]);
    prefix[0] = 0;
    suffix[n + 1] = 0;
    for (i = 1, j = n; i <= n; i++, j--) {
      prefix[i] = prefix[i - 1] + a[i];
      suffix[j] = suffix[j + 1] + a[j];
    }
    ans = INT_MAX;
    for (i = 0; i <= n; i++) {
      left = i, right = n - i;
      cnt = prefix[i] * l + suffix[i + 1] * r;
      if (left > right) cnt += (left - right - 1) * ql;
      if (left < right) cnt += (right - left - 1) * qr;
      ans = min(ans, cnt);
    }
    cout << ans << "\n";
  }
  return 0;
}
