#include <bits/stdc++.h>
using namespace std;
long long w[100005];
long long suml[100005], sumr[100005];
int main() {
  long long n, l, r, Ql, Qr;
  while (~scanf("%lld%lld%lld%lld%lld", &n, &l, &r, &Ql, &Qr)) {
    memset(suml, 0, sizeof(suml));
    memset(sumr, 0, sizeof(sumr));
    if (l < r && n % 2 == 1) {
      for (int i = 1; i <= n / 2 + 1; i++) {
        scanf("%lld", &w[i]);
      }
      for (int i = n / 2 + 1; i >= 1; i--) {
        suml[i] = w[i] + suml[i + 1];
      }
      for (int i = n / 2 + 2; i <= n; i++) {
        scanf("%lld", &w[i]);
        sumr[i] = w[i] + sumr[i - 1];
      }
    } else {
      for (int i = 1; i <= n / 2; i++) {
        scanf("%lld", &w[i]);
      }
      for (int i = n / 2; i >= 1; i--) {
        suml[i] = w[i] + suml[i + 1];
      }
      for (int i = n / 2 + 1; i <= n; i++) {
        scanf("%lld", &w[i]);
        sumr[i] = w[i] + sumr[i - 1];
      }
    }
    long long max = 0;
    if (n % 2 == 0) {
      if (r < l) {
        max = 0;
        for (int i = n / 2, j = 1; i >= 1; i--, j++) {
          long long temp = (l - r) * suml[i] - 2 * j * Qr + Qr;
          max = max > temp ? max : temp;
        }
      } else if (r > l) {
        max = 0;
        for (int i = n / 2 + 1, j = 1; i <= n; i++, j++) {
          long long temp = (r - l) * sumr[i] - 2 * j * Ql + Ql;
          max = max > temp ? max : temp;
        }
      } else
        max = 0;
    } else {
      if (r < l) {
        max = 0;
        for (int i = n / 2, j = 1; i >= 1; i--, j++) {
          long long temp = (l - r) * suml[i] - 2 * j * Qr;
          max = max > temp ? max : temp;
        }
      } else if (r > l) {
        max = 0;
        for (int i = n / 2 + 2, j = 1; i <= n; i++, j++) {
          long long temp = (r - l) * sumr[i] - 2 * j * Ql;
          max = max > temp ? max : temp;
        }
      } else
        max = 0;
    }
    printf("%lld\n", suml[1] * l + sumr[n] * r - max);
  }
}
