대부분의 프로그래밍 컨테스트는 맞은 문제의 개수가 많을수록,
그리고 맞은 문제의 개수가 같다면 문제 각각의 풀린 시간과 틀린 횟수에 따른 페널티가 적을수록 순위가 높다.
여기서 풀린 시간은 콘테스트의 시작 시간으로부터 문제가 풀릴 때까지 걸린 시간이다.
만약 \(3\)개의 문제를 순서대로 풀기 위해 각각 \(3\), \(5\), \(4\)의 시간이 소요된다면
첫 번째 문제의 풀린 시간은 \(3\), 두 번째 문제는 \(3+5\), 세 번째 문제는 \(3+5+4\)가 되므로, 이를 합한 총 페널티는 \(23\)이 된다.
하지만 문제를 푸는 순서를 다르게 한다면 페널티를 더 줄일 수도 있을 것이다.
프로그래밍 컨테스트의 \(N\)개의 문제를 푸는 데 걸리는 각각의 소요 시간을 미리 추산해 두었을 때,
풀린 시간에 따른 페널티를 가장 적게 만들 수 있는 프로그램을 작성해 보자.
틀린 횟수에 따른 페널티는 무시한다.
입력
- 첫 번째 줄에 \(N\)이 주어진다. \((1 ≤ N ≤ 100)\)
- 두 번째 줄부터 \(N\)개의 줄에 각 문제를 푸는데 걸리는 소요 시간이 주어진다.\((1 ≤ 소요 시간 ≤ 1000)\)
출력
- 문제를 모두 풀 때 받을 수 있는 가장 낮은 페널티를 출력한다.
입력 예시 1
3
3
5
4
출력 예시 1
22
Comments