Submission #1248760

#TimeUsernameProblemLanguageResultExecution timeMemory
1248760arashmemarSelf Study (JOI22_ho_t2)C++20
0 / 100
185 ms5116 KiB
#include <bits/stdc++.h>
using namespace std;

const int maxn = 3e5 + 100;

long long int a[maxn], b[maxn], n, m;

void tl()
{
	while (true)
	{
		int lksjfdj = 1;
	}
}

bool check(long long int l)
{
	long long int d = 0;
	for (int i = 1;i <= n;i++)
	{
		long long int x = a[i] * m;
		if (x > l)
		{
			d += (x - l) / a[i];
		}
		if (x < l)
		{
			if (b[i] == 0)
			{
				return 0;
			}
			d -= ((l - x + b[i] - 1) / b[i]);
		}
	}
	return d >= 0;
}

int main()
{
	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]);
	}
	long long int l = 0, r = 1e18 + 1;
	while (r - l > 1)
	{
		long long int mid = (l + r) / 2;
		if (check(mid))
		{
			l = mid;
		}
		else
		{
			r = mid;
		}
	}
	cout << l;
}
#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...