AhmedAshraff

Untitled

May 16th, 2025
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | Source Code | 0 0
  1. #include <bits/stdc++.h>
  2. #define boAshraf ios_base::sync_with_stdio(false); cin.tie(NULL);
  3. #define ll long long
  4. #define sz(s) (int)(s).size()
  5. #define all(s) (s).begin(),(s).end()
  6. using namespace std;
  7. void File();
  8. void sol();
  9. int main() {
  10.     boAshraf
  11.     File();
  12.     int t = 1;
  13.     cin >> t;
  14.     while (t--) {
  15.         sol();
  16.     }
  17.     return 0;
  18. }
  19.  
  20. void sol() {
  21.     auto add=[&](ll num, ll denum, ll a, ll b)->pair<ll,ll> {
  22.         ll numerator = num * b + a * denum;
  23.         ll denominator = denum * b;
  24.         ll g = __gcd(numerator, denominator);
  25.         return {numerator / g, denominator / g};
  26.     };
  27.     auto valid=[&](ll cost,ll d,ll e)->bool{
  28.         return d*cost<=e;
  29.     };
  30.     ll d,e;
  31.     cin>>d>>e;
  32.     ll num=0,denum=1;
  33.     ll cost=1;
  34.     for(int i=1;i<=30 && d;i++){
  35.         ll l=1,r=min(d,e/cost),ans=r;
  36.         while(l<=r){
  37.             ll mid=(l+r)/2;
  38.             if(valid(cost*2,d-mid,e-cost*mid))ans=mid,r=mid-1;
  39.             else l=mid+1;
  40.         }
  41.         d-=ans;
  42.         e-=cost*ans;
  43.         tie(num,denum)=add(num,denum,ans,i);
  44.         cost*=2;
  45.     }
  46.     cout<<num<<' '<<denum<<'\n';
  47. }
  48.  
  49. void File() {
  50.     freopen("marathon.in", "r", stdin);
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment