用两分怎么不行啊

#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();
    }
}

全部评论
你可以参考下我写的,会爆longlong的
1 回复 分享
发布于 2024-11-12 21:37 吉林
``` void solve() {     cin>>n;     for(int i=1;i<=n;i++)     {         int a,b,c,d;         cin>>a>>b>>c>>d;         int l=0,r=1e18;         while(l<r)         {             __int128 mid=l+r+1>>1;             if(mid*d<c*b) l=mid;             else r=mid-1;         }         cout<<a-l<<' &(30184)#39;;     } } ```
1 回复 分享
发布于 2024-11-11 19:34 河南

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务