#pragma GCC optimize("O5,unroll-loops,inline,fast-math")
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#include <bits/stdc++.h>
#define int long long
#define exoworldgd cin.tie(0)->sync_with_stdio(0), cout.tie(0)
using namespace std;
const int N=3e5+5;
int n,m,a[N],b[N],l=0,r=1e18,ans=0;
signed main(void) {
exoworldgd;
cin >> n >> m;
for(int i=0;i<n;i++) cin >> a[i];
for(int i=0;i<n;i++) cin >> b[i];
for(int i=0;i<n;i++) a[i] = max(a[i],b[i]);
while(l <= r){
int mid = (l+r)>>1, need[n],ex=0,ok=0;
for(int i=0,x;i<n;i++) x=min(m,(mid+a[i]-1)/a[i]),need[i]=max(0LL,mid-x*a[i]),ex += m-x;
for(int i=0;i<n;i++){
if(!need[i]) continue;
int c=(need[i]+b[i]-1)/b[i];
if(c > ex){ok=1; break; }
ex -= c;
}
ok ? r = mid-1 : (ans = mid, l = mid+1);
}
cout << ans;
}
| # | 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... |