思路:
二分。
实现:
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const ll INF = 0x3f3f3f3f; 5 ll n, x, y, z; 6 bool check(ll m) 7 { 8 ll tmp = m * x - n * z; 9 if (tmp <= 0) return true; 10 else if (y > z && tmp <= m * (y - z)) return true; 11 return false; 12 } 13 int main() 14 { 15 while (cin >> n >> x >> y >> z) 16 { 17 ll l = 0, r = INF, ans = -1; 18 while (l <= r) 19 { 20 ll m = l + r >> 1; 21 if (check(m)) 22 { 23 ans = m; l = m + 1; 24 } 25 else r = m - 1; 26 } 27 cout << ans << endl; 28 } 29 return 0; 30 }