#include #include #include #include #include #include #include long long int cmpfunc (const void * a, const void * b) { return ( *(long long int*)a - *(long long int*)b ); } long long int pown(int y){ long long int ans = 1; while(y!=0){ ans =ans*2; y--; } return ans; } int main(){ int n; long long int ans = 0; scanf("%d",&n); long long int *calories = malloc(sizeof(long long int) * n); for(int calories_i = 0; calories_i < n; calories_i++){ scanf("%lld",&calories[calories_i]); } qsort(calories, n, sizeof(long long int), cmpfunc); int j=0; for(int i=(n-1);i>=0;i--){ ans = ans + (pown(j)*calories[i]); j++; } printf("%lld",ans); // your code goes here return 0; }