#include #include #define rep(i,a,b) for(int i=a;i=a;i--) #define all(x) (x).begin(),(x).end() #define pb(x) push_back(x); templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b; // using mint = static_modint<1000000007>; const ll mod=998244353; //const ll mod=1e9+7; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; const string zton="0123456789"; const string atoz="abcdefghijklmnopqrstuvwxyz"; const string ATOZ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const ll inf=(1ll<<60); // const int inf=(1<<30); lld dist(lld x1,lld x2,lld y1,lld y2){ lld res=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); res=sqrt(abs(res)); return res; } lld arg(lld x,lld y){ const lld eps=1e-8; lld res=0; if(abs(x)+abs(y)<=eps)return 0.0; else if(abs(x)<=eps){ if(y>=0.0)return (M_PI/2); else return (M_PI/2+M_PI); } else if(abs(y)<=eps){ if(x>=0.0)return 0.0; else return M_PI; } res=atan2(abs(y),abs(x)); if(x<=0&&y>=0)res=(M_PI-res); else if(x<=0&&y<=0)res+=(M_PI); else if(x>=0&&y<=0)res=(M_PI*2-res); return res; } ll gcd(ll a,ll b){ if(a==0||b==0)return a+b; ll r; r=a%b; if(r==0){ return b; } else{ return gcd(b,r); } } typedef pair P; int H,W,La,Lb; ll Ka,Kb; bool check(int a,int mid){ ll h1=a; h1*=La; chmin(h1,H*1ll); ll h2=H-h1; ll w1=mid; w1*=Lb; chmin(w1,W*1ll); ll w2=W-w1; ll ex=Ka*a+Kb*mid; ll T=h2*w1; ll U=h1*w2; ll V=h2*w2; if(T+U+V<=ex)return true; return false; } int main(void){ ios::sync_with_stdio(false); cin.tie(nullptr); cin >> H >> W >> La >> Lb >> Ka >> Kb; int ans=(H+La-1)/La+(W+Lb-1)/Lb; rep(a,0,(H+La-1/La)+1){ int ok=ans-a; if(ok<0)continue; if(check(a,ok)==false)continue; int ng=-1; while(ng+1!=ok){ int mid=(ok+ng)/2; if(check(a,mid))ok=mid; else ng=mid; } chmin(ans,a+ok); } swap(H,W); swap(La,Lb); swap(Ka,Kb); rep(a,0,(H+La-1/La)+1){ int ok=ans-a; if(ok<0)continue; if(check(a,ok)==false)continue; int ng=-1; while(ng+1!=ok){ int mid=(ok+ng)/2; if(check(a,mid))ok=mid; else ng=mid; } chmin(ans,a+ok); } cout << ans << endl; }