1번부터 n번까지 번호가 매겨진, 서로 독립적이며 나눌 수 없는 작업 n개가 있다. 이 작업들은 중간에 쉬는 시간 없이 어떤 순서로든 하나씩 차례대로 실행되며, 시작 시각은 t=0이다. 작업을 늦게 시작할수록 실행 시간이 길어진다. 즉, 작업 i를 시각 t에 시작하면 실행에 hi(t)=ait+bi의 시간이 걸리며, 여기서 0≤ai≤1, 0≤bi≤1이다. 따라서 각 작업은 시각을 t에서 t+hi(t)=(1+ai)t+bi로 진행시킨다.
전체 실행 시간은 마지막 작업이 끝나는 시각이다. 이 전체 실행 시간이 최소가 되도록 작업 순서를 정하는 것이 목표이다.
n과 각 작업의 계수 ai, bi를 읽어, 전체 실행 시간을 최소로 만드는 작업 순서를 출력하는 프로그램을 작성하라. 전체 실행 시간이 최소가 되는 순서가 여러 개라면, 그중 사전순으로 가장 앞서는 것을 출력한다(작업 번호 수열을 앞에서부터 자리별로 비교한다).
선택한 작업 순서를 1,…,n의 순열로, 한 줄에 작업 번호 하나씩 출력한다. 전체 실행 시간을 최소로 만드는 순서가 둘 이상이면, 그중 사전순으로 가장 앞서는 순서를 출력한다.