#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=3e5+10;
ll a[N],b[N];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
cin>>b[i];
}
ll s=0,e=1e18;
while(s+1<e)
{
ll mid=(s+e)/2;
ll ans=0;
for(int i=1;i<=n;i++)
{
// i can take atmost m classes
if(a[i]>b[i])
{
ll p=(mid+a[i]-1)/a[i];
p=min(p,m);
// val = a[i]*p
ll rem=mid-a[i]*p;
if(rem>0)
{
p+=(rem+b[i]-1)/b[i];
}
ans+=p;
}
else
{
ans+=(mid+b[i]-1)/b[i];
}
if(ans>(n*m))break;
}
if(ans<=(n*m))
{
s=mid;
}
else
{
e=mid;
}
}
cout<<s<<endl;
}
| # | 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... |