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

Chạy qua cầu

Đề bài

Mô tả

n cây cầu được đặt nối tiếp nhau: cầu thứ i bắt đầu ngay tại điểm kết thúc của cầu thứ i1. Bạn phải chạy qua toàn bộ n cây cầu từ trái sang phải.

Cầu thứ i có độ dài li và một giới hạn thời gian ti: nếu bạn đặt chân vào đầu cầu thứ i tại thời điểm T thì bạn phải rời khỏi cầu đó chậm nhất tại thời điểm T+ti (được phép tới đúng vào thời điểm T+ti).

Tốc độ chạy bình thường của bạn là 0.5, nghĩa là chạy hết một đoạn dài s mất 2s giây. Ngoài ra bạn có các chai nước tăng lực giống hệt nhau: uống một chai làm tốc độ tăng gấp đôi (lên thành 1) trong r giây. Bạn chỉ được uống tại các thời điểm nguyên, việc uống diễn ra tức thời, và nếu uống một chai tại thời điểm T thì chai tiếp theo chỉ có thể uống sớm nhất tại thời điểm T+r.

Bạn bắt đầu ở đầu cầu thứ nhất tại thời điểm 0 và luôn chạy liên tục (không được dừng lại). Hãy tìm số chai nước tăng lực ít nhất cần dùng để chạy qua hết tất cả các cầu. Nếu số đó không vượt quá 105 thì phải chỉ ra các thời điểm uống.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nr.
  • Dòng thứ hai chứa n số nguyên l1,l2,,ln.
  • Dòng thứ ba chứa n số nguyên t1,t2,,tn.

Dữ liệu ra

  • Dòng đầu in ra k là số chai nước ít nhất phải dùng, hoặc 1 nếu không có cách nào chạy qua hết các cầu.
  • Nếu có đáp án và k105 thì dòng thứ hai in ra k số nguyên là các thời điểm uống nước, theo thứ tự tăng dần. Nếu có nhiều đáp án, in ra đáp án nào cũng được.

Ràng buộc

  • 1n2·105
  • 1r1012
  • 1li5·106
  • 1ti107

Ví dụ

Input Output Giải thích
1 3
7
10
2
6 9
Chỉ có một cầu dài 7 nhưng chỉ được đi trong 10 giây, trong khi chạy thường mất 14 giây. Trong 6 giây đầu chạy được 3 đơn vị, sau đó uống hai chai tại thời điểm 69 nên từ giây thứ 6 tới giây thứ 10 luôn ở tốc độ 1 và đi nốt 4 đơn vị còn lại, tới đích đúng lúc 10. Các đáp án khác như 0 3 hay 4 7 cũng được chấp nhận.
3 100000
5 5 5
5 7 8
1
0
Uống một chai ngay tại thời điểm 0; vì r=100000 rất lớn nên tốc độ 1 được duy trì suốt cả ba cầu, mỗi cầu chỉ mất 5 giây.
3 3
3 3 3
3 3 2
-1 Cầu thứ ba dài 3 nhưng chỉ cho phép 2 giây, mà ngay cả với tốc độ tối đa 1 cũng cần 3 giây.
4 1000
1 2 3 4
10 9 10 9
0 Chạy với tốc độ thường đã kịp mọi cầu, không cần uống chai nào.

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