#include #define fi first #define se second #define mp make_pair #define pb push_back #define pob pop_back #define pf push_front #define pof pop_front #define FOR(i,n) for(int i=0;i=0;i--) #define REVV(i,l,r,c) for(int i=max(l,r),_m=min(l,r);i>=_m;i-=c) #define REV(i,l,r) REVV(i,l,r,1) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector vi; typedef pair pii; typedef pair pll; typedef vector vii; const int INF=(int)2e9; const double EPS=(double)1e-9; const double PI=(double)acos(-1.0); const ll MOD=(ll)1e9+7; int irand(int lo, int hi){ return (((double)rand())/(RAND_MAX+1.0)) * (hi-lo+1) + lo; } string toString(ll x) { stringstream ss; ss << x; return ss.str(); } ll toNumber(string S) { ll ret; sscanf(S.c_str(),"%lld",&ret); return ret; } void syncOff(){ ios_base::sync_with_stdio(0); cin.tie(0); } int main(){ syncOff(); int p,m,d,s; cin>>p>>d>>m>>s; int now=p; int cnt=0; while(s>=now){ cnt++; s-=now; now = max(now-d,m); // cout<