Submission #824340

#TimeUsernameProblemLanguageResultExecution timeMemory
824340ttamxSelf Study (JOI22_ho_t2)C++14
100 / 100
242 ms13912 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=3e5+5; int n; ll m; ll a[N],b[N],ord[N]; bool check(ll val){ ll cnt=0; for(int i=1;i<=n;i++){ int id=ord[i]; ll used=(val+a[id]-1)/a[id]; if(used<=m){ cnt+=m-used; }else{ cnt-=(val-m*a[id]+b[id]-1)/b[id]; if(cnt<0)return false; } } return true; } int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> m; for(int i=1;i<=n;i++)cin >> a[i]; for(int i=1;i<=n;i++)cin >> b[i]; for(int i=1;i<=n;i++)a[i]=max(a[i],b[i]); iota(ord,ord+n+1,0); sort(ord+1,ord+n+1,[&](int x,int y){ return a[x]>a[y]; }); ll l=0,r=1e18; while(l<r){ ll mid=(l+r+1)/2; if(check(mid))l=mid; else r=mid-1; } cout << l; }
#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...