Submission #1259419

#TimeUsernameProblemLanguageResultExecution timeMemory
1259419namhhSelf Study (JOI22_ho_t2)C++20
100 / 100
123 ms5136 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int,int>
#define fi first
#define se second
const int N = 3e5+5;
int n,m,a[N],b[N];
signed 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];
	int l = 1;
	int r = 1e18;
	int ans = 0;
	while(l <= r){
		int mid = (l+r)/2;
		int rem = n*m;
		for(int i = 1; i <= n; i++){
			if(a[i] > b[i]){
				int aqua = (mid+a[i]-1)/a[i];
				aqua = min(aqua,m);
				int emilia = mid-a[i]*aqua;
				rem -= aqua;
				if(emilia > 0){
					int subaru = (emilia+b[i]-1)/b[i];
					rem -= subaru;
				}
			}
			else{
				int ram = (mid+b[i]-1)/b[i];
				rem -= ram;
			}
			if(rem < 0) break;
		}
		if(rem >= 0){
			ans = mid;
			l = mid+1;
		}
		else r = mid-1;
	}
	cout << ans;
}
#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...