#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll nx=3e5+5;
ll n, m, a[nx], b[nx], need, extra, l=1, r=4e18, x, c, cl, y, rm;
int main()
{
cin.tie(NULL)->sync_with_stdio(false);
cin>>n>>m;
for (int i=1; i<=n; i++)
{
cin>>a[i];
}
for (int i=1; i<=n; i++)
{
cin>>b[i];
}
while (l<r)
{
x=(l+r+1)/2;
for (int i=1; i<=n; i++)
{
c=max(a[i], b[i]);
if (x/c*c==x) cl=x/c;
else cl=x/c+1;
if (cl>m)
{
rm=x-m*c;
if (rm/b[i]*b[i]==rm*b[i]) rm=rm/b[i];
else rm=rm/b[i]+1;
need=need+rm;
}
else extra=extra+m-cl;
if (need>m*n)
{
break;
}
}
if (extra>=need)
{
l=x;
}
else r=x-1;
need=0;
extra=0;
}
cout<<r;
}
| # | 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... |