Cài đặt
Giả sử bạn được cung cấp n cầu chì, với 1 ≤ n 5, mỗi cầu chì dài một mét và trong đó mỗi cầu chì có tốc độ cháy liên quan là N mét mỗi D giờ.
Một cầu chì có thể được thắp sáng ở một hoặc cả hai đầu, sau đó bị dập tắt ở một hoặc cả hai đầu, nối lại, dập tắt, v.v., nhiều lần khi cần thiết cho đến khi cầu chì được tiêu thụ hết. Bạn có thể thắp sáng và dập tắt cầu chì ngay lập tức, và bạn có thể quan sát chính xác ngay lập tức một cầu chì được tiêu thụ hoàn toàn (bị cháy).
Cầu chì không thể cắt và cũng không thể thắp sáng bất cứ nơi nào ngoại trừ ở đầu của nó.
Thiết lập như vậy cho phép một hệ thống thời gian chính xác vô hạn, bằng cách đo thời gian giữa bất kỳ hai sự kiện chiếu sáng / tiêu thụ cầu chì nào. Ví dụ: với hai cầu chì có tốc độ đốt cháy là 1 mét mỗi giờ, bạn có thể đo chính xác 45 phút (3/4 giờ) bằng cách
- đồng thời: thắp sáng cầu chì thứ nhất ở cả hai đầu, chiếu sáng cầu chì thứ hai ở một đầu và đánh dấu điểm bắt đầu của khoảng thời gian của bạn
- thắp sáng đầu thứ hai của cầu chì thứ hai ngay lập tức cầu chì thứ nhất được sử dụng (30 phút sau)
- đánh dấu kết thúc khoảng thời gian của bạn tại thời điểm cầu chì thứ hai được sử dụng (15 phút sau)
Các thách thức
Cho một số phần trăm giờ t và một bộ n phân số biểu thị tốc độ ghi chính xác của n cầu chì, viết chương trình hoặc hàm xuất / trả về giá trị trung thực nếu t giờ có thể được đo chính xác thông qua đốt cháy hệ thống của cầu chì hoặc giá trị giả mạo khác.
Đầu vào của chương trình có thể là bất kỳ thứ nào sau đây:
- đối số dòng lệnh của biểu mẫu
TN/TD N1/D1 N2/D2 N3/D3 ...
- một chuỗi các hình thức
TN/TD N1/D1 N2/D2 N3/D3 ...
đọc từstdin
hoặc tương đương - một chuỗi của biểu mẫu
TN/TD N1/D1 N2/D2 N3/D3 ...
được truyền dưới dạng đối số hàm - một mảng các chuỗi
["TN/TD", "N1/D1", "N2/D2", "N3/D3", ...]
được truyền dưới dạng đối số hàm
Trong mọi trường hợp t = TN
/ TD
, trong đó TN
, TD
∈ [1.10000].
Tương tự như vậy, trong mọi trường hợp: tốc độ ghi cho cầu chì i = N i / D i = N<i>
/ D<i>
, trong đó N<i>
, D<i>
∈ [1,10] i .
Bạn có thể cho rằng sẽ luôn có từ 1 đến 5 cầu chì (bao gồm) và tất cả các đầu vào đều hợp lệ và trong phạm vi. Bạn cũng có thể giả định rằng tất cả các phân số đầu vào được đưa ra trong điều khoản thấp nhất.
Bạn không được sử dụng số dấu phẩy động với các thành phần phân số cho thử thách này. Đó là, nếu bạn sử dụng số dấu phẩy động ở bất cứ đâu trong ứng dụng của mình, chúng chỉ có thể nhận các giá trị tích phân với thành phần phân số bằng không.
Chấm điểm
Đây là một thử thách chơi gôn mã , do đó, bài nộp theo byte ngắn nhất sẽ được trao phần thắng.
Ví dụ đầu vào / đầu ra
input: 29/6 3/2 2/3 3/5 3/7 7/5
output: true
One solution:
- light both ends of fuse 1, mark start of interval
- on fuse 1 consumption: light both ends of fuse 2, light one end of fuse 5
- on fuse 5 consumption: extinguish one end of fuse 2, light both ends of fuse 3,
light both ends of fuse 4
- on fuse 2 consumption: extinguish one end of fuse 3, extinguish both ends of
fuse 4
- on fuse 3 consumption: relight one end of fuse 4
- on consumption of fuse 4: mark end of interval (29/6 hours)
input: 2/1 3/1 5/1 7/1
output: false
input: 5/1 6/1 1/6 9/1 1/9
output: true
One solution:
- light fuse 1 at one end, light fuse 2 at both ends, light fuse 4 at both ends
- on fuse 1 consumption: extinguish one end of fuse 2, mark start of interval
- on fuse 4 consumption: relight one end of fuse 2
- on fuse 2 consumption: mark end of interval (5 hours)
Hạnh phúc hợp nhất! :)