trang chủ / bài tập / voltkeep

Bộ sạc di động

Đề bài

Mô tả

Bạn có n thiết bị và muốn sử dụng đồng thời tất cả chúng.

Thiết bị thứ i tiêu thụ ai đơn vị năng lượng mỗi giây. Việc tiêu thụ diễn ra liên tục: trong λ giây thiết bị tiêu thụ đúng λ·ai đơn vị. Ban đầu thiết bị thứ i đang tích trữ bi đơn vị năng lượng. Mỗi thiết bị có thể tích trữ lượng năng lượng lớn tuỳ ý.

Bạn chỉ có một bộ sạc duy nhất, tại mỗi thời điểm bộ sạc chỉ được cắm vào đúng một thiết bị và nạp cho thiết bị đó p đơn vị năng lượng mỗi giây. Việc nạp cũng diễn ra liên tục: cắm vào một thiết bị trong λ giây thì thiết bị đó nhận thêm λ·p đơn vị. Bạn được phép rút bộ sạc ra và cắm sang thiết bị khác tại bất kỳ thời điểm nào (kể cả thời điểm không nguyên), thời gian chuyển đổi coi như bằng 0.

Hãy tính khoảng thời gian dài nhất có thể sử dụng đồng thời tất cả các thiết bị, tính đến lúc có một thiết bị nào đó rơi xuống 0 đơn vị năng lượng. Nếu có thể sử dụng vô hạn, hãy in ra 1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên np: số thiết bị và công suất của bộ sạc.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên aibi: mức tiêu thụ mỗi giây và lượng năng lượng ban đầu của thiết bị thứ i.

Dữ liệu ra

In ra 1 nếu có thể sử dụng các thiết bị vô hạn thời gian. Ngược lại in ra khoảng thời gian dài nhất trước khi một thiết bị cạn năng lượng.

Đáp án được chấp nhận nếu sai số tuyệt đối hoặc sai số tương đối so với đáp án đúng không vượt quá 104.

Ràng buộc

  • 1n105
  • 1p109
  • 1ai,bi105

Ví dụ

Input Output Giải thích
2 1
2 2
2 1000
2.0000000000 Cắm sạc vào thiết bị 1 trong suốt thời gian: nó tiêu thụ 2 và nhận 1 mỗi giây nên trụ được 2 giây. Thiết bị 2 có sẵn 1000 đơn vị nên không cạn trong 2 giây đó.
1 100
1 1
-1 Bộ sạc nạp 100 đơn vị mỗi giây trong khi thiết bị duy nhất chỉ tiêu thụ 1, nên cứ cắm sạc là dùng được mãi mãi.
3 5
4 3
5 2
6 1
0.5000000000 Sạc cho thiết bị 3 trong 2/5 giây, rồi chuyển sang sạc thiết bị 2 trong 1/10 giây. Tổng tiêu thụ 4+5+6=15 lớn hơn p=5 nên không thể dùng vô hạn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0