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ạ độ Ox giữa hai điểm x=0x=a. Xe xuất phát từ x=0, đi tới x=a, lập tức quay đầu và chạy về x=0, rồi lại lập tức quay đầu đi tới x=a, cứ như vậy. Mỗi lần đi từ x=0 tới x=a hoặc từ x=a về x=0 được gọi là một chuyến. Xe phải thực hiện đúng k chuyến.

Bình xăng của xe chứa được tối đa b 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 x=f với 0<f<a. 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 b lít.

Hãy tìm số lần đổ xăng ít nhất để xe hoàn thành đủ k chuyến. Nếu không thể hoàn thành, in ra 1.

Dữ liệu vào

Một dòng duy nhất chứa bốn số nguyên a, b, f, k: đ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 1 nếu không thể thực hiện đủ k chuyến.

Ràng buộc

  • 0<f<a106
  • 1b109
  • 1k104

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

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