페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#6271

구두 수선공 1s 128MB

문제

지금 구두 수선공에게는 손님으로부터 주문 받고 제작해야 할 작업이 N개 쌓여있다.

구두 수선공은 하루에 한 작업만 수행할 수 있고, i번째 작업을 완료하는 데 T_i일이 걸린다. 이때 T_i는 정수이고 1 ≤ T_i ≤ 1000이다.

i번째 작업을 시작하기 전에 하루가 지연될 때마다 구두 수선공은 보상금 S_i센트를 지불해야 한다.
이때 S_i는 정수이고 1 ≤ S_i ≤ 10000이다.

구두 수선공을 돕기 위해 최저 보상금을 지불하는 작업 순서를 정해야 한다.

하루에 2개 이상의 작업을 동시에 수행할 수 없다. 작업 i를 수행하고 있는 경우, 작업 i를 마칠 때 까지 작업 i 외의 다른 작업을 수행할 수 없다.


입력

1 ≤ N ≤ 1000 범위의 정수 N이 첫 번째 줄에 주어진다.

다음 N개 줄에 걸쳐서 첫 번째 열에는 T_1 … T_N이 입력되며, 두 번째 열에는 S_1 … S_N이 주어진다.


출력

최소 보상금을 지불하는 작업 순서를 출력해야 한다. 모든 작업은 입력에서의 번호(1~N)로 표시해야 한다.
모든 정수는 한 줄로 표시해야 하며, 각 작업은 공백 문자로 구분한다.

여러 가지 해답이 나올 수 있다면 오름차순 정렬에 의해 가장 첫 번째 해답을 출력한다.


부분문제

번호 점수 조건
#130점

N \le 12

#270점

추가 제약 조건 없음


예제

4
3 4
1 1000
2 2
5 5
2 1 3 4


로그인해야 코드를 작성할 수 있어요.