Submission #1319552

#TimeUsernameProblemLanguageResultExecution timeMemory
1319552Muhammad_AneeqSelf Study (JOI22_ho_t2)C++20
62 / 100
149 ms5116 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int const N=3e5+10;
int n,m;
int a[N],b[N];
bool check(int vl)
{
	int le=n*m;
	int tot=0;
	for (int i=0;i<n;i++)
	{
		int mx=max(a[i],b[i]);
		int f=(vl+mx-1)/mx;
		f=min(f,m);
		int z=max(0ll,vl-f*mx);
		int g=(z+b[i]-1)/b[i];
		le-=(f+g);
		if (le<0)
			return 0;
	}
	return 1;
}
inline void solve()
{
	cin>>n>>m;
	for (int i=0;i<n;i++)
		cin>>a[i];
	for (int i=0;i<n;i++)
		cin>>b[i];
	int st=0,en=1e18+10;
	while (st+1<en)
	{
		int mid=(st+en)/2;
		if (check(mid))
			st=mid;
		else
			en=mid;
	}
	cout<<st<<endl;
}
signed main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int t=1;
    // cin>>t;
    for (int i=1;i<=t;i++)
    {
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...