Submission #1015638

#TimeUsernameProblemLanguageResultExecution timeMemory
1015638snpmrnhlolSelf Study (JOI22_ho_t2)C++17
100 / 100
187 ms11344 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 3e5;
const ll inf = 1e9;
const ll infll = 1e18;
ll v[N],v2[N];
int main(){
    ll n,m;
    cin>>n>>m;
    for(ll i = 0;i < n;i++){
        cin>>v[i];
    }
    for(ll i = 0;i < n;i++){
        cin>>v2[i];
        v[i] = max(v[i],v2[i]);
    }
    ll l = 0,r = m*inf;
    while(l != r){
        ll mij = (l + r + 1)/2;
        __int128 nr = 0;
        for(ll i = 0;i < n;i++){
            ll req2 = (mij + v[i] - 1)/v[i];
            if(req2 <= m)nr+=m - req2;
            else{
                nr-=(mij - m*v[i] + v2[i] - 1)/v2[i];
            }
        }
        //cout<<mij<<' '<<bonus<<' '<<req<<'\n';
        if(nr >= 0){
            l = mij;
        }else r = mij - 1;
    }
    cout<<l<<'\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...