#include<bits/stdc++.h>
using namespace std;
#define int long long
#define oo 10000000000000001
int n,m,a[200005],b[200005],l=oo,r,x,jump;
bool psb(int X){
int cnt=0;
for(int i=1;i<=n;i++){
if(a[i]*m>X) cnt+=X/a[i]+(X%a[i]?1:0);
else cnt+=m+(X-m*a[i])/b[i]+((X-m*a[i])%b[i]?1:0);
if(cnt>m*n) return 0;
}
return 1;
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
a[i]=max(a[i],b[i]);
}
for(int i=1;i<=n;i++){
r+=a[i];
l=min(a[i],l);
}
l*=m;
r=r*m/n+1;
x=l;
int jump=r-l;
while(jump){
while(psb(x+jump)) x+=jump;
jump/=2;
}
cout<<x<<'\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |