ll H, W, LA, LB, KA, KB; bool chk(ll k){ ll lrng = (H+LA-1)/LA; rep(i, min(lrng,k) + 1) { ll j = (k - i); ll filled = i*KA + j*KB; ll lsize = min(H, i*LA); ll rsize = min(W, j*LB); ll rem = H*W - lsize*rsize; if (rem <= filled) return true; } return false; } { rd(H, W, LA, LB, KA, KB); int k; ll ans = bsearch_min[int,k,1,H+W](chk(k)); wt(ans); }