#include #include #include #define rep(i,n) for(int i = 0;i>n; vectora(n); rep(i,n) cin>>a[i]; sort(a.begin(),a.end(), greater()); int ans = 0; int max_capacity_on_floor_k = 1; int k=0; int i=0; int total_cost = 0; while(i0) max_capacity_on_floor_k *=2; int number_of_shops_on_floor_k = 1; int cost_on_floor_k = 0; while(number_of_shops_on_floor_k <= max_capacity_on_floor_k){ if(i>=n) break; cost_on_floor_k += a[i]*k; i++; number_of_shops_on_floor_k++; } total_cost+=cost_on_floor_k; k++; } cout << total_cost << endl; return 0; }