#pragma region Include/Defines #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long lli; typedef vector vi; typedef vector vli; typedef pair pii; typedef pair pll; typedef vector vpii; typedef vector vpll; typedef long double ld; #define all(a) std::begin(a), std::end(a) const int INF = 0x3f3f3f3f; const lli LINF = 0x3f3f3f3f3f3f3f3f; template inline void _max(T &a, T2 b) { a = max((T)a, (T)b); } template inline void _min(T &a, T2 b) { a = min((T)a, (T)b); } #ifdef _DEBUG #define epr(...) fprintf(stderr,__VA_ARGS__) #else #define epr(...) #endif #pragma endregion int p, d, m, s; void clear() { } void solve() { int tp = p, res = 0; while (s >= tp) { s -= tp; tp = max(m, tp - d); res++; } printf("%d\n", res); } int main() { #ifdef _LOCAL_VAN freopen("in.txt", "r", stdin); #endif while (scanf("%d %d %d %d", &p, &d, &m, &s) == 4) { clear(); solve(); #ifndef _LOCAL_VAN return 0; #endif } return 0; }