문제
풀이
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> p_list;
int n,ret,p;
int main() {
//N명의 사람들
//ni번째 사람이 돈 뽑는데 걸리는 시간 = pi
//p=[3 1 4 3 2]
//n=[1 2 3 4 5]
//--> 각 사람이 돈뽑는데 걸리는 시간 합
//-->p1 +(p1+p2) + (p1+p2+p3) + (p1+p2+p3+p4) + (p1+p2+p3+p4+p5)
//--> 가장 중복 많이되는 p1이 작을 수록 총 시간 합 줄어듦
//-->시간 적게 걸리는 사람일수록 앞에서는게 좋음
//ans = p[0]*(n-0) + p[1]*(n-1) + p[2]*(n-2) +...+ p[n-1]*(n-n-1)
cin >> ret;
n = ret;
while (ret--) {
scanf("%d", &p);
p_list.push_back(p);
}
sort(p_list.begin(),p_list.end());
int sum = 0;
for (int i = 0; i < n; i++) {
sum = sum + p_list[i] * (n - i);
}
printf("%d", sum);
}