Cho một đoàn xe gồm ~N~ chiếc đi trên một đường một chiều và mỗi xe trong đoàn xe đã được bố trí theo thứ tự từ ~1~ đến ~N~. Mỗi một xe trong đoàn có vận tốc là ~V_i~ và trọng lượng ~W_i~ ~ (1 \leq i \leq N )~. Khi đi qua một chiếc cầu có tải trọng giới hạn là ~P~ (tấn), chiều dài ~L~(Km) thì đoàn xe phải chia thành các nhóm sao cho tổng trọng lượng của mỗi nhóm không quá ~P~. Lưu ý rằng không được đảo thứ tự các xe trong đoàn xe. Các nhóm xe phải đi tuần tự có nghĩa là nhóm thứ ~k~ chỉ được khởi hành khi mà toàn bộ xe của nhóm thứ ~k – 1~ đã qua cầu ~(1<k \leq N)~. Giả thiết rằng ~P ≥ W_i~ với ~1 \leq i \leq N~. Rõ ràng khi đó thời gian để một nhóm xe qua cầu phụ thuộc vào xe có vận tốc nhỏ nhất trong nhóm đó (xem như chiều dài của các xe cũng như khoảng cách giữa các xe là không đáng kể).</p>
Yêu cầu:
Hãy tìm cách chia đoàn xe thành các nhóm sao cho thời gian mà đoàn xe sang được cầu là nhỏ nhất.
Dữ liệu:
- Dòng đầu chứa ~3~ số nguyên dương ~N, P~ và ~L~ ~(N, P, L \leq 1000) ~ thể hiện cho số xe, tải trọng giới hạn của cầu và độ dài của cầu;
- Dòng thứ ~i~ trong ~N~ dòng kế tiếp gồm ~2~ số nguyên dương ~W_i~ và ~V_i~ ~ (W_i, V_i \leq 100, 1 \leq i \leq N)~
Kết quả ra:
- Dòng đầu ghi một số thực là tổng thời gian nhỏ nhất để xe qua cầu, cho phép làm tròn lấy ~2~ chữ số sau dấu chấm thập phân;
- Dòng kế tiếp gồm các số ~x_1, x_2,..., x_k ~ thể hiện: nhóm ~1~ gồm các xe thứ ~1~ đến xe thứ ~x_1~, nhóm ~2~ gồm các xe thứ ~x_1+1~ đến xe thứ ~x_2,..., ~ nhóm ~k~ từ xe thứ ~ x_{k – 1}+1~ đến ~x_k~.
Sample Input
10 100 100
40 25
50 20
50 20
70 10
12 50
09 70
49 30
38 25
27 50
19 70
Sample Output
25.00
1 3 6 8 10
Nguồn: 150 bài Toán - Tin (Thầy Lê Minh Hoàng)
Comments