This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()
int main(){
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll n,m;
cin>>n>>m;
ll a[n+5],b[n+5];
for(ll i=1;i<=n;i++){
cin>>a[i];
}
for(ll i=1;i<=n;i++){
cin>>b[i];
a[i]=max(a[i],b[i]);
}
ll l=0,r=1e18;
ll need[n+5];
while(l<r){
ll mid=(l+r+1)/2;
fill(need+1,need+n+1,mid);
ll left=0;
for(ll i=1;i<=n;i++){
ll x=min((need[i]+a[i]-1)/a[i],m);
need[i]-=x*a[i];
left+=m-x;
}
ll cur=0;
bool ok=true;
for(ll i=1;i<=n;i++){
if(need[i]>0){
cur+=(need[i]+b[i]-1)/b[i];
if(cur>left){
ok=false;
break;
}
}
}
if(ok){
l=mid;
}
else{
r=mid-1;
}
}
cout<<l;
}
# | 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... |