Submission #1002450

#TimeUsernameProblemLanguageResultExecution timeMemory
1002450THXuanSelf Study (JOI22_ho_t2)C++17
62 / 100
164 ms11468 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <queue>
#include <set>
#include <map>
#define INF 2e18
using namespace std;
typedef long long ll;

ll a[300005], b[300005];

void solve()
{
	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 lo = 0; ll hi = INF;
	while (lo < hi) {
		ll mid = (lo + hi + 1) / 2;
		ll sum = 0;
		for (int i = 1; i <= n; i++) {
			if (b[i] >= a[i]) sum += ceil((double)mid / (double)b[i]);
			else if (mid <= a[i] * m) sum += ceil((double)mid / (double)a[i]);
			else sum += m + (mid - a[i] * m - 1) / b[i] + 1;
			if (sum > INF) break;
		}
		if (sum > n * m)hi = mid - 1;
		else lo = mid;
	}
	cout << lo << "\n";
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int t = 1;// cin>>t;
	while (t--) solve();
	return 0;
}
#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...