ATM
면접 대비시간 제한1초메모리 제한256 MB
인출 시간 순으로 줄을 다시 세워 모든 사람의 대기 시간을 포함한 완료 시각 합을 최소로 만듭니다.
문제
인하은행에는 ATM이 한 대뿐이다. 지금 이 ATM 앞에 명이 줄을 서 있다. 사람에게는 1번부터 번까지 번호가 붙어 있고, 번 사람이 돈을 인출하는 데 걸리는 시간은 분이다.
앞사람이 인출을 모두 마쳐야 뒷사람이 시작하므로, 어떤 사람이 인출을 마치기까지 필요한 시간은 자기 앞에 선 사람의 인출 시간과 자기 인출 시간을 모두 더한 값이다. 따라서 줄을 서는 순서에 따라 각 사람이 돈을 인출하는 데 필요한 시간의 합이 달라진다.
예를 들어 5명이 있고 , , , , 라고 하자. 1, 2, 3, 4, 5 순서로 서면 1번 사람은 3분, 2번 사람은 분, 3번 사람은 분, 4번 사람은 분, 5번 사람은 분이 걸려서 합이 분이다. 2, 5, 1, 4, 3 순서로 서면 각각 1분, 3분, 6분, 9분, 13분이 걸려서 합이 32분이 되고, 이보다 더 작게 만들 수는 없다.
줄을 선 사람의 수 과 각 사람이 돈을 인출하는 데 걸리는 시간 가 주어질 때, 각 사람이 돈을 인출하는 데 필요한 시간의 합의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 사람의 수 ()이 주어진다.
둘째 줄에 각 사람이 돈을 인출하는 데 걸리는 시간 이 공백으로 구분되어 주어진다 ().
출력
첫째 줄에 각 사람이 돈을 인출하는 데 필요한 시간의 합의 최솟값을 출력한다.