WA on #{61,67,68,75,76} HEEEEELP
查看原帖
WA on #{61,67,68,75,76} HEEEEELP
747369
CooooldWind_楼主2023/8/30 15:54
#include<bits/stdc++.h>
using namespace std;
long long N,M,A[5000010],B[5000010],max_time;
bool judge(unsigned long long least_know){
    long long empty_time = 0;
    for(long long i = 1;i <= N;i++){
        unsigned long long now_know = M * max(A[i],B[i]);
        if(now_know >= least_know){
           empty_time += M - ceil(least_know * 1.0 / max(A[i],B[i]));
        }
        else{
            empty_time -= ceil((least_know - now_know) * 1.0 / B[i]);
        }
    }
    return empty_time >= 0;
}
int main(){
    cin >> N >> M;
    for(unsigned long long i = 1;i <= N;i++){
        cin >> A[i];
        max_time = max(max_time,A[i]);
    }
    for(unsigned long long i = 1;i <= N;i++){
        cin >> B[i];
        max_time = max(max_time,B[i]);
    }
    unsigned long long l = 1,r = M * max_time,mid,ans = 0;
    while(l <= r){
        mid = (l + r) / 2;
        //cout << mid << ":" << judge(mid) << endl;
        if(judge(mid)){
            l = mid + 1;
            ans = max(ans,mid);
        }
        else r = mid - 1;
    }
    cout << ans << endl;
    return 0;
}
2023/8/30 15:54
加载中...