Subtask 2#RE
查看原帖
Subtask 2#RE
1378568
lY_chen楼主2024/11/19 20:57
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
#define MAX int(100000+5)
ll a[MAX];
ll n, m, L, k;
bool check(ll x)
{
	ll sum = 0, pos = 0;
	for (int i = 2; i <= n; i++)
	{
		if (a[i] - pos > x)
		{
			const ll ans = a[i] - pos;
			if (ans / x * x == ans) sum += ans / x - 1;
			else sum += ans / x;
		}
		pos = a[i];
	}
	return sum <= k;
}
int main(void)
{
	cin >> L >> n >> k;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}	a[++n] = L;
	ll l = 0, r = L + 1;
	while (l < r)
	{
		ll mid = (l + r) / 2;
		if (check(mid)) r = mid;
		else l = mid + 1;
	}
	cout << l;
	return 0;
}
2024/11/19 20:57
加载中...