Cái túi thần kỳ

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 900 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nobita tình cờ tìm thấy một hang động chứa đầy các loại bột kim cương và đá quý cực kỳ quý hiếm. Cậu mang theo chiếc túi thần kỳ của Doraemon có sức chứa trọng lượng tối đa là \(W\). Trong hang có \(n\) loại kho báu, loại thứ \(i\) có tổng giá trị là \(v_i\) và tổng trọng lượng là \(w_i\).

Vì các loại kho báu này ở dạng bột hoặc có thể chia nhỏ, Nobita có thể lấy một phần của mỗi loại (ví dụ lấy \(1/2\) hoặc \(2/3\) khối lượng của loại đó) và nhận được giá trị tương ứng với tỉ lệ khối lượng đã lấy.

Hãy giúp Nobita tính toán xem tổng giá trị lớn nhất mà cậu có thể mang về là bao nhiêu để không làm rách chiếc túi thần kỳ.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n\)\(W\) lần lượt là số lượng loại kho báu và sức chứa của túi (\(1 \le n \le 10^5, 1 \le W \le 10^9\)).
  • \(n\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(v_i\)\(w_i\) lần lượt là giá trị và trọng lượng của loại kho báu thứ \(i\) (\(1 \le v_i, w_i \le 10^9\)).

Output

  • In ra một số thực duy nhất là tổng giá trị lớn nhất có thể đạt được, làm tròn đến đúng \(6\) chữ số thập phân.

Constraints

  • \(1 \le n \le 10^5\)
  • \(1 \le W \le 10^9\)
  • \(1 \le v_i, w_i \le 10^9\)

Example

Test 1

Input
3 50
60 10
100 20
120 30
Output
240.000000
Note

Ta sẽ lấy toàn bộ vật phẩm thứ nhất (\(10\)kg, giá trị \(60\)) và vật phẩm thứ hai (\(20\)kg, giá trị \(100\)). Sức chứa còn lại là \(50 - 10 - 20 = 20\)kg. Ta lấy tiếp \(2/3\) khối lượng của vật phẩm thứ ba (\(20\)kg trong tổng số \(30\)kg), giá trị nhận thêm là \((2/3) \cdot 120 = 80\). Tổng giá trị là \(60 + 100 + 80 = 240\).

Test 2

Input
1 10
500 30
Output
166.666667
Note

Vật phẩm có giá trị \(500\) và khối lượng \(30\)kg. Vì túi chỉ chứa được \(10\)kg, ta lấy \(1/3\) khối lượng vật phẩm này. Giá trị đạt được là \(500 / 3 \approx 166.666667\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.