Old cassette player (3)

Consider an old cassette player, whose only working buttons are “play”
and “rewind”. You have just one cassette, which you always keep
completely rewinded. So, when you want to listen to a particular song s,
you have to press the “play” button and wait until all the songs stored
before s finish. Afterwards, when s ends, you always rewind the
cassette.

You have n songs. You know that you want to listen to song i with
absolute frequency f_(i). (For instance, if f₁ = 6 and f₂ = 3, then you
listen to song 1 twice as much as to song 2.) You also know the duration
d_(i) of every song i. Assume that the cassette is long enough to store
all your songs. Your goal is to choose the order to store the songs so
as to minimize the expected time to listen to a desired song.

Input

Input is all natural numbers, and consists of several cases. Every case
begins with n, which is followed by n pairs f_(i) d_(i). At least one of
the frequencies is strictly positive. All the durations are strictly
positive. Assume 1 ≤ n ≤ 10⁵.

Output

For every case, print with four digits after the decimal point the
optimal expected time to listen to a desired song. The input cases have
no precision issues.

Problem information

Author: Salvador Roura

Generation: 2026-01-25T10:32:01.412Z

© Jutge.org, 2006–2026.
https://jutge.org
