#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];
while(l<=r){
int mid=(l+r)>>1, ex=0,ok=0,need[n];
for (int i=0,x; i< n; i++) x=(mid+a[i]-1)/a[i], x=min(x,m), ex+=m-x, need[i]=mid-x*a[i];
for (int i=0; i< n;i++) {
if (need[i]<=0) continue;
int c=(need[i]+b[i]-1)/b[i];
if (c>ex) {ok=1; break;}
ex-=c;
}
ok ? r=mid-1 : (ans=mid+1, 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... |