Submission #656986

#TimeUsernameProblemLanguageResultExecution timeMemory
656986Darren0724Self Study (JOI22_ho_t2)C++17
100 / 100
356 ms11544 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define all(x) x.begin(),x.end() int limit=5e15; int n,m; vector<int> a,b; bool f(int k){ int cnt=0; int need=0; for(int i=0;i<n;i++){ int t=(k-1)/a[i]+1; if(t<=m){ cnt+=m-t; } else{ need+=(k-a[i]*m-1)/b[i]+1; if(need>limit){ return 0; } } } return need<=cnt; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>m; a.resize(n); b.resize(n); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<n;i++){ cin>>b[i]; a[i]=max(a[i],b[i]); } int l=0,r=2e18; while(r-l>1){ int m=(l+r)>>1; if(f(m)){ l=m; } else{ r=m; } } cout<<l<<endl; 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...