//~ mail ID : neernpatel@gmail.com //~ Author : DrexDelta //~ codechef : drexdelta , hackerRank : drexdelta , codeforces : drexdelta1 //~ Contact Info : neernpatel@gmail.com , +91-80898 25745 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define F first #define S second #define MP make_pair #define PB push_back #define UB upper_bound #define LB lower_bound #define ER erase #define EN end() #define B begin() #define I insert #define OPTIMIZE ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define int ll #define endl "\n" #define CO cout << #define CI cin >> #define NL cout << endl; #define DBG {int debug ; cin >> debug;} #define AND && #define OR || #define XOR ^ #define OFLUSH fflush(stdout); #define IFLUSH fflush(stdin); #define LEN(x) x.length() #define rep(i,x) for(int i = 0 ; i < x ; i++) #define rep1(i,x) for(int i = 1 ; i <= x ; i++) #define repl(var,start_val,limit_val) for(int var = start_val ; var <= limit_val ; var++) #define perl(var,start_val,limit_val) for(int var = start_val ; var => limit_val ; var--) #define y1 qwert #define y2 trewq #define x1 asdfg #define x2 gfdsa typedef long long ll; typedef pair ii; typedef vector vi; typedef set si; typedef multiset msi; typedef long double ld; const ll maxn = 2e6+6 ; const ll MOD = 1e9 + 7; bool comparator(int i , int j) { return (i < j); } ll power(ll x, ll i) { ll ans = 1; while(i > 0) { if(i&1) ans = (ans*x)%MOD; i >>=1; x = (x*x)%MOD; } return ans; } ll power(ll x, ll i,ll mod) { ll ans = 1; while(i > 0) { if(i&1) ans = (ans*x)%mod; i >>=1; x = (x*x)%mod; } return ans; } ll modInverse(ll x, ll mod) { return power(x , mod-2,mod); } bool isPalindrome(string s) { int limit = s.length()/2; for(int i = 0 ; i < limit ; i++) { if(s[i] != s[s.length()-i-1]) return 0; } return true; } ll gcd(ll x, ll y) { ll t; while(y != 0) { t = x%y; x = y; y = t; } return x; } bool isVowel(char ch){ if(ch == 'a' || ch == 'i' || ch == 'e' || ch == 'u' || ch == '0' || ch == 'y'){ return true; } return false; } bool isPrime(int n) { int root = sqrt(n); for(int i = 2 ; i <= root ; i++) if(n%i == 0) return 0; return 1; } // eratoshenes sieve ... // Once eratoshtenes is activated, use the isPrime function below it, // and deactivate above function /* int lp[maxn]; vector pr; void generatePrimes() { for (int i=2; i<=maxn; ++i) { if (lp[i] == 0) { lp[i] = i; pr.push_back (i); } for (unsigned j=0; j> p >> d >> m >> s; } void getAnswer(){ } void solve(){ int a = 0; while(s >= p){ s = s-p; p = max(p-d , m); a++; } cout << a << endl; } signed main(){ OPTIMIZE //freopen("in.txt" , "r" , stdin) ; //freopen("out.txt" , "w" , stdout) ; int t=1; //cin >> t; while(t--) getInput() , solve(); return 0; }