해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
버스는 좌표축 Ox를 따라 점 x = 0에서 점 x = a까지 이동한다. 점 x = 0에서 출발한 후 점 x = a에 도착하면 즉시 방향을 바꾸어 점 x = 0으로 이동한다. 점 x = 0으로 돌아온 후에는 즉시 다시 점 x = a로 향하며, 이를 계속 반복한다. 따라서 버스는 x = 0에서 x = a까지 갔다가 돌아오는 방식으로 이동한다. 점 x = 0에서 x = a까지 또는 점 x = a에서 x = 0까지 이동하는 것을 버스의 한 번의 운행이라고 한다. 버스는 총 k번 운행해야 한다.
버스의 연료 탱크에는 휘발유를 b리터까지 담을 수 있다. 버스가 거리 한 단위를 이동하려면 정확히 휘발유 한 리터를 소비해야 한다. 버스는 연료 탱크가 가득 찬 상태로 첫 운행을 시작한다.
점 x = f에 주유소가 있다. 이 점은 점 x = 0과 점 x = a 사이에 있다. 버스의 운행 경로에는 다른 주유소가 없다. 버스는 어느 방향으로든 주유소를 지나갈 때 정차하여 탱크를 완전히 채울 수 있다. 따라서 주유를 위해 정차한 후 탱크에는 휘발유가 b리터 들어 있게 된다.
버스가 k번 운행하기 위해 점 x = f에서 주유해야 하는 최소 횟수는 얼마인가? 첫 운행은 점 x = 0에서 시작한다.
첫째 줄에 네 정수 a, b, f, k (0 < f < a ≤ 106, 1 ≤ b ≤ 109, 1 ≤ k ≤ 104) — 첫 버스 운행의 종점, 버스 연료 탱크의 용량, 주유소가 있는 점, 필요한 운행 횟수가 주어진다.
버스가 k번 운행하기 위해 주유해야 하는 최소 횟수를 출력한다. 버스가 k번 운행하는 것이 불가능하면 -1을 출력한다.
6 9 2 4
4
6 5 4 3
-1
6 10 2 4
2
첫 번째 예제에서 버스는 매 운행 도중 주유해야 한다.
두 번째 예제에서 버스는 주유하지 않고 거리 10단위를 이동할 수 있다. 따라서 버스는 첫 운행 전체를 마친 뒤 두 번째 운행에서 거리 4단위를 이동하여 주유소가 있는 점에 도착한다. 그런 다음 탱크를 채우고 두 번째 운행을 마친 뒤 세 번째 운행에서 거리 2단위를 이동할 수 있다. 이 경우 다시 주유소가 있는 점에 도착한다. 이어서 탱크를 10리터까지 채우면 세 번째 운행을 마치고 네 번째 운행의 전체 경로를 이동할 수 있다. 운행이 끝나면 탱크는 비어 있게 된다.
세 번째 예제에서 버스는 두 번째 운행 도중 주유하면 탱크에 휘발유가 5리터만 들어 있게 되지만 다음 주유 전까지 거리 8단위를 이동해야 하므로, 총 3번의 운행을 모두 할 수 없다.