[USACO 2010 Feb B]Toy Shopping
题号:NC24721
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

Bessie wants some toys. She's been saving her allowance for years, and has an incredibly huge stash. However, she is quite frugal and wants to get the best value for her cash. In fact, she has decided only to buy exactly three different toys of the N (3 <= N <= 25,000) offered at the Bovine Plaything Palace.
Toy i brings Bessie J_i (0 <= J_i <= 1,000,000) microbundles of joy and has price P_i (0 < P_i <= 100,000,000). Bessie has enough money to buy any three toys that she chooses.
Bessie wants to maximize the sum of her happy-frugal metric (which is calculated as -- joy divided by price) for the three toys she chooses. Help Bessie decide which toys she should buy. The answer is guaranteed to be unique.
Assume that the Bovine Plaything Palace offers 6 different toys for Bessie:
        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
Bessie would choose toy 6 (HFM = 4.80), toy 2 (HFM = 2.10), and toy 3 (HFM = 1.19).

输入描述:

* Line 1: A single integer: N
* Lines 2..N+1: Line i+1 contains two space-separated integers: J_i and P_i

输出描述:

* Line 1: The total price that Bessie will have to pay
* Lines 2..4: In descending order sorted by the happy-frugal metric, the 1-based index of the toys that Bessie should buy, one per line
示例1

输入

复制
6
0 521
442 210
119 100
120 108
619 744
48 10

输出

复制
320
6
2
3