아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

장난감 쇼핑

시간 제한1초메모리 제한128 MB

요약
N개의 장난감 중 세 개를 골라 (기쁨/가격) 비율의 합이 최대가 되도록 하고, 총 가격과 비율 순으로 정렬한 세 장난감의 번호를 출력한다.
난이도

보통10점 중 7점

유형
정렬, 그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

베시는 장난감을 사고 싶어 합니다. 여러 해 동안 용돈을 모아 어마어마한 돈을 가지고 있지만, 알뜰한 성격이라 돈을 가장 값어치 있게 쓰고 싶어 합니다. 그래서 진열된 NN개(3≤N≤25,0003 \le N \le 25{,}000)의 장난감 중에서 서로 다른 장난감을 정확히 세 개만 사기로 했습니다.

ii번 장난감은 베시에게 JiJ_i(0≤Ji≤1,000,0000 \le J_i \le 1{,}000{,}000)만큼의 기쁨(마이크로번들 단위)을 주고, 가격은 PiP_i(0<Pi≤100,000,0000 < P_i \le 100{,}000{,}000)입니다. 베시는 원하는 어떤 세 장난감이든 살 수 있을 만큼 돈이 충분합니다.

베시는 고른 세 장난감에 대한 '알뜰기쁨 지수'의 합을 최대로 만들고 싶습니다. 알뜰기쁨 지수는 Ji/PiJ_i / P_i(기쁨을 가격으로 나눈 값)로 정의됩니다. 어떤 장난감을 사야 할지 도와주세요. 정답은 유일함이 보장됩니다.

예를 들어 여섯 개의 장난감이 진열되어 있고, 각 장난감의 알뜰기쁨 지수가 다음과 같다고 합시다.

  i    Joy    Price    Happy-Frugal Metric
  -    ---    -----    -------------------
  1      0      521    0.00000
  2    442      210    2.10476...
  3    119      100    1.19000
  4    120      108    1.11111...
  5    619      744    0.83198...
  6     48       10    4.80000

이 경우 베시는 6번 장난감(지수 4.80), 2번 장난감(지수 2.10), 3번 장난감(지수 1.19)을 고릅니다.

입력

  • 첫째 줄: 정수 NN.
  • 둘째 줄부터 N+1N+1째 줄까지: i+1i+1째 줄에는 공백으로 구분된 두 정수 JiJ_i와 PiP_i가 주어집니다.

출력

  • 첫째 줄: 베시가 지불해야 하는 총 가격 (고른 세 장난감의 가격의 합).
  • 둘째 줄부터 넷째 줄까지: 베시가 사야 하는 세 장난감의 1-based 번호를, 알뜰기쁨 지수가 큰 순서(내림차순)로 한 줄에 하나씩 출력합니다.

예제1

  1. 예제 1

    입력
    6
    0 521
    442 210
    119 100
    120 108
    619 744
    48 10
    
    예상 출력
    320
    6
    2
    3