import java.util.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Solution { public static void main(String[] args) { ReadIO sc = new ReadIO(); int n = sc.nextInt(); int[] a = sc.nextArray(n); Arrays.sort(a); long ans = 0; for(int i=n-1;i>-1;i--){ ans += ((long)a[i]*(long)Math.pow(2,n-1-i)); } System.out.println(ans); } } class ReadIO { BufferedReader br; StringTokenizer st; public ReadIO() { br = new BufferedReader(new InputStreamReader(System.in)); } String next() { while (st == null || !st.hasMoreElements()) { try { st = new StringTokenizer(br.readLine()); } catch (IOException e) { e.printStackTrace(); } } return st.nextToken(); } char nextChar() { return next().charAt(0); } int nextInt() { return Integer.parseInt(next()); } long nextLong() { return Long.parseLong(next()); } double nextDouble() { return Double.parseDouble(next()); } String nextLine() { String line = null; try { line = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return line; } int[] nextArray(int n) { int i = 0; int[] a = new int[n]; while (i < n) { a[i] = nextInt(); i++; } return a; } String[] nextStringArray(int n) { int i = 0; String[] a = new String[n]; while (i < n) { a[i] = next(); i++; } return a; } void printArray(Object[] a, int method) { int n = a.length; for (int i = 0; i < n; i++) { if (method == 0) { System.out.print(a[i] + " "); } else { System.out.println(a[i]); } } if (method == 0) { System.out.println(); } } }