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

Nhiên liệu tên lửa

Đề bài

Mô tả

Một con tàu vũ trụ thực hiện chuyến bay từ hành tinh 1 tới hành tinh n rồi quay về hành tinh 1, đi qua lần lượt các hành tinh theo thứ tự 12n1. Như vậy tàu thực hiện đúng n chuyến bay.

Mỗi chuyến bay từ hành tinh x sang hành tinh y gồm hai giai đoạn: cất cánh từ hành tinh xhạ cánh xuống hành tinh y.

Khối lượng của tàu cùng toàn bộ hàng hoá (chưa tính nhiên liệu) là m tấn. Nhiên liệu chỉ có thể nạp một lần duy nhất tại hành tinh 1 trước khi khởi hành, và được dùng cho cả việc cất cánh lẫn hạ cánh.

Một tấn nhiên liệu nâng được ai tấn khối lượng khi cất cánh từ hành tinh i, và hạ được bi tấn khối lượng khi hạ cánh xuống hành tinh i. Khối lượng cần nâng (hoặc hạ) ở mỗi giai đoạn bao gồm cả tàu, hàng hoá và lượng nhiên liệu còn lại tại thời điểm đó; nhiên liệu đã cháy hết thì không phải mang theo nữa.

Ví dụ, nếu khối lượng tàu là 9 tấn, nhiên liệu còn lại là 3 tấn và hệ số cất cánh là ai=8 thì lượng nhiên liệu bị đốt là 1.5 tấn (vì 1.5·8=9+3), sau khi cất cánh còn lại 1.5 tấn nhiên liệu.

Lượng nhiên liệu bị đốt ở mỗi giai đoạn cũng như lượng nhiên liệu nạp ban đầu đều có thể là số thực không nguyên. Việc cất cánh và hạ cánh được coi là xảy ra tức thời.

Hãy tính khối lượng nhiên liệu nhỏ nhất cần nạp để hoàn thành hành trình.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên n: số hành tinh.
  • Dòng thứ hai chứa số nguyên m: khối lượng tàu cùng hàng hoá.
  • Dòng thứ ba chứa n số nguyên a1,a2,,an: hệ số cất cánh của từng hành tinh.
  • Dòng thứ tư chứa n số nguyên b1,b2,,bn: hệ số hạ cánh của từng hành tinh.

Dữ liệu ra

Một số thực duy nhất là khối lượng nhiên liệu nhỏ nhất cần nạp, hoặc 1 nếu không thể hoàn thành hành trình.

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

Ràng buộc

  • 2n1000
  • 1m1000
  • 1ai,bi1000
  • Nếu hành trình khả thi thì lượng nhiên liệu cần nạp không vượt quá 109 tấn.

Ví dụ

Input Output Giải thích
2
12
11 8
7 5
10.0000000000 Nạp 10 tấn nhiên liệu, tổng khối lượng ban đầu là 22 tấn. Cất cánh từ hành tinh 1: đốt 22/11=2 tấn, còn 20 tấn. Hạ cánh xuống hành tinh 2: đốt 20/5=4 tấn, còn 16 tấn. Cất cánh từ hành tinh 2: đốt 16/8=2 tấn, còn 14 tấn. Hạ cánh xuống hành tinh 1: đốt 14/7=2 tấn, còn đúng 12 tấn là khối lượng tàu.
3
1
1 4 1
2 5 3
-1 Hệ số cất cánh a1=1 nghĩa là một tấn nhiên liệu chỉ nâng được đúng một tấn khối lượng, nên nhiên liệu không bao giờ đủ để nâng chính nó cùng con tàu. Tàu không thể cất cánh khỏi hành tinh 1.
6
2
4 6 3 3 5 6
2 6 3 6 5 3
85.4800000000 Hành trình đi qua tất cả 12 giai đoạn (sáu lần cất cánh, sáu lần hạ cánh) và về đích với đúng 2 tấn khối lượng còn lại.

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