用两分怎么不行啊
#include<bits/stdc++.h> using namespace std; typedef long long i64; typedef long long ll; int _T = 1, MOD = 1e9 + 7; void solve(){ ll a, b, c, d; cin >> a >> b >> c >> d; ll l = 0,r = 1e10; ll lcm = b*d/__gcd(b,d); while(l < r) { ll k = l + (r - l)/2; if(k * lcm/b < c * lcm/d) l = k + 1; else r = k; } cout << a - (l - 1) << ' '; } int main() { cin >> _T; while(_T--) { solve(); } }