Xe buýt và trạm xăng
Đề bài
Mô tả
Một chiếc xe buýt chạy trên trục toạ độ giữa hai điểm và . Xe xuất phát từ , đi tới , lập tức quay đầu và chạy về , rồi lại lập tức quay đầu đi tới , cứ như vậy. Mỗi lần đi từ tới hoặc từ về được gọi là một chuyến. Xe phải thực hiện đúng chuyến.
Bình xăng của xe chứa được tối đa lít. Đi được một đơn vị khoảng cách tiêu tốn đúng một lít xăng. Khi bắt đầu chuyến thứ nhất, bình xăng đầy.
Trên tuyến đường chỉ có duy nhất một trạm xăng, đặt tại điểm với . Mỗi lần đi ngang qua trạm (theo bất kỳ chiều nào), xe có thể dừng lại và đổ đầy bình, khi đó bình xăng trở lại đúng lít.
Hãy tìm số lần đổ xăng ít nhất để xe hoàn thành đủ chuyến. Nếu không thể hoàn thành, in ra .
Dữ liệu vào
Một dòng duy nhất chứa bốn số nguyên , , , : điểm cuối của chuyến đầu tiên, dung tích bình xăng, vị trí trạm xăng và số chuyến cần thực hiện.
Dữ liệu ra
In ra một số nguyên duy nhất: số lần đổ xăng ít nhất, hoặc nếu không thể thực hiện đủ chuyến.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 9 2 4 | 4 | Xe phải đổ xăng ở mỗi chuyến, tổng cộng 4 lần. |
| 6 10 2 4 | 2 | Với 10 lít, xe đi trọn chuyến 1 rồi đi thêm 4 đơn vị của chuyến 2 để tới trạm, đổ đầy bình, hoàn tất chuyến 2 và đi 2 đơn vị của chuyến 3 để tới trạm, đổ đầy lần thứ hai, rồi đi hết chuyến 3 và chuyến 4 với bình cạn đúng lúc về đích. |
| 6 5 4 3 | -1 | Ở chuyến 2, nếu đổ đầy tại trạm thì xe chỉ có 5 lít nhưng cần đi 8 đơn vị mới gặp lại trạm, nên không thể hoàn thành 3 chuyến. |
Bình luận