大佬们求救
查看原帖
大佬们求救
42143
fyss006楼主2020/5/2 11:42

请问哪里错了???

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<stack>
#include<cmath>
#define Rint register int
#define ll long long
using namespace std;
ll le=1,ri=1000000000005,n,k,m;
bool check(int x){
    ll r=n,d=k; //remain,date
    for(;;){
        ll p,q;
        q=r/x;
        if(q<=m){
            return m*d>=r;
        }
        p=r/q-x+1;
        if(p>d)p=d;
        r-=p*q;
        d-=p;
        if(r<=0)return true;
        if(d==0)return false;
    } 
}
int main(){
    cin.tie(0);
    cin>>n>>k>>m;
    ri=n;
    while(le<ri){
        ll mid=(le+ri+1)>>1;
        if(check(mid)){
            le=mid;
        }else{
            ri=mid-1;
        }
    }
    cout<<le;
    return 0;
}
2020/5/2 11:42
加载中...