QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#781775#5115. Clone Ranranguodong#TL 0ms3620kbC++17655b2024-11-25 17:27:332024-11-25 17:27:34

Judging History

你现在查看的是最新测评结果

  • [2024-11-25 17:27:34]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:3620kb
  • [2024-11-25 17:27:33]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b,c;
bool check(int t){
    int num=1,tim=t;
    int ans=tim/b;
    while(tim>=a&&num*2*((tim-a)/b)>=ans){
        num*=2;
        tim-=a;
        ans=num*(tim/b);
        // if(t==8)cout<<num<<' '<<ans<<' '<<tim<<endl;
        if(ans>=c)return true;
    }
    if(ans>=c)return true;
    return false;
}
signed main(){
    int t;
    cin>>t;
    while(t--){
        cin>>a>>b>>c;
        int l=1,r=1e18;
        while(l<r){
            int mid=(l+r)/2;
            if(check(mid))r=mid;
            else l=mid+1;
        }
        cout<<l<<endl;
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3620kb

input:

5
1 1 1
2 3 3
9 9 9
3 26 47
1064 822 1048576

output:

1
7
45
44
21860

result:

ok 5 number(s): "1 7 45 44 21860"

Test #2:

score: -100
Time Limit Exceeded

input:

99500
1000000000 1000000000 1000000000
1000000000 1000000000 999999999
1000000000 1000000000 999999998
1000000000 1000000000 999999997
1000000000 1000000000 999999996
1000000000 1000000000 999999995
1000000000 1000000000 999999994
1000000000 1000000000 999999993
1000000000 1000000000 999999992
10000...

output:

31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
31000000000
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999998
30999999996
30999999996
30999999996
30999999996
30999999996
...

result: