Statement
Hollow Knight: Silksong의 팬인 은하는 DLC인 Sea of Sorrow의 출시를 기다리다가 지쳐서, 이 게임의 강철 영혼 모드에 도전해 보기로 했다.
이 게임의 주인공인 호넷은 적의 공격을 맞으면 체력이 만큼 감소하며, 회복 스킬을 사용하면 실크를 소모해서 체력을 만큼 회복할 수 있다. 그러나 최대 체력을 초과하여 회복하려고 할 경우 최대 체력까지만 회복된다.
은하는 적의 패턴을 파악하기 위해 회복 스킬을 적절히 사용하면서 최대한 오래 버텨 보기로 했다. 전투가 시작될 때 호넷의 체력은 최대 체력 와 같으며, 가진 실크의 양은 이다. 체력이 이하가 되는 순간까지 호넷이 맞을 수 있는 공격의 최대 횟수를 구하라.
은하는 자신이 원할 때 언제든지 회복 스킬을 사용할 수 있으며, 전투 도중 실크를 추가로 얻는 경우는 없다.
Input
첫째 줄에 테스트 케이스의 수 가 주어진다.
다음 개의 줄에 정수 , , , 가 공백을 사이에 두고 주어진다.
Output
체력이 이하가 되는 순간까지 호넷이 맞을 수 있는 공격의 최대 횟수를 이라고 하자. 문제의 제한 조건에서 항상 를 만족함을 증명할 수 있다. 각 테스트 케이스마다 의 값을 한 줄에 하나씩 출력한다.
Samples
테스트 케이스 1의 설명
최대 번의 공격을 맞을 수 있다. 연속으로 번 회복하는 것도 가능하다.
테스트 케이스 2의 설명
회복을 언제 하더라도 번의 공격을 맞으면 체력이 이하가 된다. 체력 에서 회복을 했을 때 최대 체력 을 넘을 수 없음에 유의하라.
테스트 케이스 3의 설명
몇 번 회복하든 상관 없이 번 맞으면 죽는다.
테스트 케이스 4의 설명
이므로, 을 출력한다.
Notes
계산 과정 중 값이 커질 수 있으므로 일부 프로그래밍 언어에서는 비트 정수 변수(C++: __int128)를 사용해야 할 수도 있음에 유의하라.