Submission #1182534

#TimeUsernameProblemLanguageResultExecution timeMemory
1182534PieArmySelf Study (JOI22_ho_t2)C++20
0 / 100
85 ms5016 KiB
#include<bits/stdc++.h>
typedef long long ll;
#define pb push_back
#define fr first
#define sc second
using namespace std;

int n,m;
ll a[300023],b[300023];

bool f(ll x){
	ll ek=0;
	for(int i=1;i<=n;i++){
		if(m*a[i]==x)continue;
		if(m*a[i]>x){
			ek+=m-((x-1)/a[i]+1);
		}
		else{
			ek-=(x-m*a[i]-1)/b[i]+1;
		}
	}
	return ek>=0;
}

int main(){
	ios_base::sync_with_stdio(false);cin.tie(NULL);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		cin>>b[i];
		a[i]=max(a[i],b[i]);
	}
	ll l=1,r=1000000000000000000ll;
	while(l<r){
		ll mi=(l+r+1)>>1;
		if(f(mi))l=mi;
		else r=mi-1;
	}
	cout<<max(min(max(min(l,r),min(l,r)),max(min(l,r),min(l,r))),min(max(min(l,r),min(l,r)),max(min(l,r),min(l,r))));
}
#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...