//################################################################ //################################################################ //####In the Name Of Allah,the Most Gracious,the Most Merciful.### //######Created by Sazid Rahman Simanto on 2/21/16.############## //# Copyright © 2016 Sazid Rahman Simanto. All rights reserved.## //################################################################ //################################################################ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MSET(a,x) memset(a,x,sizeof a) #define FOR(i,x,y) for(int i=(x);i<=(y);i++) #define FORR(i,x,y) for(int i=(x);i<(y);i++) #define ROF(i,x,y) for(int i=(y);i>=(x);i--) #define SQ(x) ((x)*(x)) #define ALL(x) (x).begin(),(x).end() #define SZ(x) ((int)(x).size()) #define ff first #define ss second #define pb push_back #define inf 1061109567 #define maxn 100010 #define esp 1e-9 #define mod 1000000007 #define ll long long #define ull unsigned long long #define pii pair #define pll pair #define read() freopen("input.txt", "r", stdin) #define write() freopen("output.txt", "w", stdout) typedef vector vi; typedef pair ii; ll bigmod(ll a, ll b, ll M) { ll ret = 1; for(; b > 0; b >>= 1) { if(b & 1) ret = (ret * a) % M; a = (a * a) % M; } return ret; } template inline T gcd(T a, T b){ while(b) b ^= a ^= b ^= a %= b; return a; } template inline T lcm(T a, T b) { return (a / gcd(a, b)) * b; } ll pww(ll a, ll b) { ll ret = 1; for(; b > 0; b >>= 1) { if(b & 1) ret = ret * a; a = a * a; } return ret; } ll Q(ll a, ll b, ll c) { ll ret = 1; for(; b > 0; b >>= 1) { if(b & 1) ret = ret * a; if(ret > c) return c + 1; a = a * a; } return ret; } pii exEuclid(int a, int b) { if(b == 0) return pii(1, 0); else { pii r = exEuclid(b, a%b); return pii(r.ss, r.ff-r.ss*(a/b)); } } int modInv(int a, int m) { pii ret = exEuclid(a, m); return ((ret.ff % m) + m ) % m; } int Set(int N, int pos) {return N = N | (1 << pos);} int reset(int N, int pos) {return N = N & ~ (1 << pos);} bool check(int N, int pos) {return (bool) (N & (1 << pos));} //################################################################ //#####################Template Ends Here######################### //################################################################ vector cup; int x, n; int main() { //read(); //ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); //write(); cin >> n; FORR(i, 0, n){ cin >> x; cup.pb(x); } sort(ALL(cup)); reverse(ALL(cup)); ull ans = 0; FORR(i, 0, n){ ull po = cup[i] * (ll)pow(2, i); ans += po; } cout << ans << endl; return 0; }