인증된 문제
실버 IV
Moondev의 느린 서버
출제자 Moondev · 티어 투표 0명
| 시간 제한 | 메모리 제한 | 채점 방식 | 맞힌 사람 | 제출한 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1.0 초 | 256 MB | 정답 코드 + 생성기 · 전부 맞아야 100점 | 1명 | 1명 | 100% |
문제
Moondev(문뎁)은 온라인 저지 플랫폼 Bindv OJ를 운영하는 개발자입니다. 문뎁은 플랫폼의 첫 대회를 개최하기로 했으나, 집에 있는 서버의 사양이 넉넉하지 못해 제출된 코드들을 한 번에 하나씩 순차적으로만 채점할 수 있습니다.
대회에는 총 $N$명의 참가자가 코드를 제출했습니다. 각 참가자의 고유 번호 $ID_i$와 코드를 채점하는 데 걸리는 시간 $P_i$초가 비정렬 상태로 주어집니다.
채점 순서에 따라 각 참가자가 결과를 받기까지 기다려야 하는 대기 시간(자신의 코드 채점이 끝날 때까지 걸리는 시간)이 달라집니다. 문뎁은 모든 참가자의 대기 시간의 합을 최소로 만들고, 이때의 채점 순서를 결정하려고 합니다. 채점 시간이 같은 경우 고유 번호($ID$)가 작은 참가자를 먼저 채점합니다.
모든 참가자의 대기 시간의 합의 최솟값과 최적의 채점 순서(참가자 고유 번호 목록)를 구하는 프로그램을 작성하세요.
입력
첫째 줄에 참가자의 수 $N$ ($1 \le N \le 100\,000$)이 주어집니다.
둘째 줄부터 $N$개의 줄에 걸쳐 각 참가자의 고유 번호 $ID_i$와 채점 시간 $P_i$ ($1 \le ID_i \le 1\,000\,000$, $1 \le P_i \le 10\,000$)가 공백을 사이에 두고 주어집니다. 참가자의 고유 번호는 중복되지 않습니다.
출력
첫째 줄에 모든 참가자의 대기 시간 합의 최솟값을 출력합니다.
둘째 줄에 최적 채점 순서대로 참가자의 고유 번호($ID$)를 공백으로 구분하여 출력합니다.
입출력 예시
입력 1
5 103 3 101 1 105 4 102 3 104 2
출력 1
32 101 104 102 103 105
Moondev님의 문제를 변형함
코드 제출
채점 준비 중...