#include <bits/stdc++.h>   using namespace std;   const long long maxn = 2e6 + 6;   const long long MOD = 1e9 + 7;   bool comparator(long long i, long long j) { return (i < j); }   struct setCompare {     bool operator()(const int64_t& lhs, const int64_t& rhs) const {}   };   long long power(long long x, long long i) {     long long ans = 1;     while (i > 0) {       if (i & 1) ans = (ans * x) % MOD;       i >>= 1;       x = (x * x) % MOD;     }     return ans;   }   long long power(long long x, long long i, long long mod) {     long long ans = 1;     while (i > 0) {       if (i & 1) ans = (ans * x) % mod;       i >>= 1;       x = (x * x) % mod;     }     return ans;   }   long long modInverse(long long x, long long mod) {     return power(x, mod - 2, mod);   }   bool isPalindrome(string s) {     long long limit = s.length() / 2;     for (long long i = 0; i < limit; i++)       if (s[i] != s[s.length() - i - 1]) return false;     return true;   }   long long gcd(long long x, long long y) {     long long t;     while (y != 0) t = x % y, x = y, y = t;     return x;   }   bool isVowel(char ch) {     if (ch ==  a  || ch ==  i  || ch ==  e  || ch ==  u  || ch ==  o  ||         ch ==  y ) {       return true;     }     return false;   }   bool isPrime(long long n) {     long long root = sqrt(n);     for (long long i = 2; i <= root; i++)       if (n % i == 0) return 0;     return 1;   }   long double getDisSquare(long double asdfg, long double qwert,                            long double gfdsa, long double trewq) {     return ((asdfg - gfdsa) * (asdfg - gfdsa) +             (qwert - trewq) * (qwert - trewq));   }   bool isSquareHelper(long long asdfg, long long qwert, long long gfdsa,                       long long trewq, long long x3, long long y3, long long x4,                       long long y4) {     long double d1, d2, d3, d4, d5, d6;     d1 = getDisSquare(asdfg, qwert, gfdsa, trewq);     d2 = getDisSquare(gfdsa, trewq, x3, y3);     d3 = getDisSquare(x3, y3, x4, y4);     d4 = getDisSquare(x4, y4, asdfg, qwert);     if (d1 == d2 && d1 == d3 && d1 == d4) {       d5 = getDisSquare(asdfg, qwert, x3, y3);       d6 = getDisSquare(gfdsa, trewq, x4, y4);       if (d5 == d6) {         return 1;       }     }     return 0;   }   bool isSquare(long long asdfg, long long qwert, long long gfdsa,                 long long trewq, long long x3, long long y3, long long x4,                 long long y4) {     if (isSquareHelper(asdfg, qwert, gfdsa, trewq, x3, y3, x4, y4) ||         isSquareHelper(asdfg, qwert, gfdsa, trewq, x4, y4, x3, y3) ||         isSquareHelper(asdfg, qwert, x3, y3, gfdsa, trewq, x4, y4))       return 1;     else       return 0;   }   bool isEqualateralTriangle(long long asdfg, long long qwert, long long gfdsa,                              long long trewq, long long x3, long long y3) {     long long d1 = getDisSquare(asdfg, qwert, gfdsa, trewq);     long long d2 = getDisSquare(gfdsa, trewq, x3, y3);     long long d3 = getDisSquare(x3, y3, asdfg, qwert);     if (d1 == d2 && d1 == d3) {       return 1;     } else       return 0;   }   bool isRightAngleTriangleHelper(long long asdfg, long long qwert,                                   long long gfdsa, long long trewq, long long x3,                                   long long y3) {     long long d1 = getDisSquare(asdfg, qwert, gfdsa, trewq);     long long d2 = getDisSquare(gfdsa, trewq, x3, y3);     long long d3 = getDisSquare(x3, y3, asdfg, qwert);     if (d2 == (d1 + d3)) {       return 1;     }     return 0;   }   bool isRightAngleTriangle(long long asdfg, long long qwert, long long gfdsa,                             long long trewq, long long x3, long long y3) {     if (isRightAngleTriangleHelper(asdfg, qwert, gfdsa, trewq, x3, y3) ||         isRightAngleTriangleHelper(gfdsa, trewq, x3, y3, asdfg, qwert) ||         isRightAngleTriangleHelper(x3, y3, asdfg, qwert, gfdsa, trewq))       return 1;     return 0;   }   bool areCollinear(long long asdfg, long long qwert, long long gfdsa,                     long long trewq, long long x3, long long y3) {     return ((x3 - asdfg) * (trewq - qwert) == (y3 - qwert) * (gfdsa - asdfg));   }   long long n, a, b, c, t[maxn], k;   void getInput() {     cin >> n >> a >> b >> c >> k;     for (long long i = 0; i < n; i++) cin >> t[i];   }   void getAnswer() {}   void solve() {     sort(t, t + n);     long long ans = 0;     long long x, y;     x = a / b;     y = a % b;     for (long long i = 0; i < n; i++) {       if (b >= c) {         ans += a;       } else {         long long tt = k - t[i];         ans += (a - b * tt + c * tt);       }     }     cout << ans <<   n ;   }   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long t = 1;     while (t--) getInput(), solve();     return 0;   }