#include <bits/stdc++.h>
using namespace std;
void read(int &x) {
  bool neg = false;
  register int c;
  x = 0;
  c = getchar();
  if (c == '-') {
    neg = true;
    c = getchar();
  }
  for (; (c > 47 && c < 58); c = getchar()) x = (x << 1) + (x << 3) + c - 48;
  if (neg) x *= -1;
}
inline void write(int x) {
  register char buffor[35];
  register int i = 0;
  do {
    buffor[i++] = (x % 10) + '0';
    x /= 10;
  } while (x);
  i--;
  while (i >= 0) putchar(buffor[i--]);
  putchar('\n');
}
int main() {
  {
    int n, l, r, q1, q2;
    scanf("%d", &n), scanf("%d", &l), scanf("%d", &r), scanf("%d", &q1),
        scanf("%d", &q2);
    int a[n + 1];
    for (int i = 0; i < n; i++) scanf("%d", &a[i]);
    int ans = int(1e9);
    int ls[n + 2], rs[n + 2];
    ls[0] = 0;
    rs[0] = 0;
    for (int i = 1; i <= n; i++) {
      ls[i] = ls[i - 1] + a[i - 1];
    }
    for (int i = n - 1; i >= 0; i--) {
      rs[n - i] = rs[n - i - 1] + a[i];
    }
    for (int i = 0; i <= n; i++) {
      int temp = ls[i] * l + rs[n - i] * r;
      if (i > n - i) temp += q1 * (i - n + i - 1);
      if (i < n - i) temp += q2 * (n - i - i - 1);
      ans = min(ans, temp);
    }
    printf("%d\n", ans);
  }
  return 0;
}
