Unaccepted 100
查看原帖
Unaccepted 100
791222
lby_commandBlock楼主2023/11/22 22:46
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;

const int N = 1e5 + 9;
const int INF = numeric_limits<signed>::max();

int h, n, k, a[N];

bool check(int mid) {
	int cnt = 0;
	for (int i = 1; i <= n; i++) {
		if (a[i] - a[i - 1] > mid) {
			cnt += (a[i] - a[i - 1]) / mid;
			if ((a[i] - a[i - 1]) % mid == 0) cnt--;
		}
	}
	return cnt <= k;
}

signed main() {
	ios::sync_with_stdio(0); cin.tie(0);
	cin >> h >> n >> k;
	for (int i = 1; i <= n; i++) cin >> a[i];
	int l = 0, r = h, mid;
	while (l <= r) {
		mid = (l + r) >> 1;
		if (check(mid)) r = mid - 1;
		else l = mid + 1;
	}
	cout << l << endl;
	return 0;
}
2023/11/22 22:46
加载中...