求助大佬们,只对了4个点,其余都是WA
查看原帖
求助大佬们,只对了4个点,其余都是WA
364991
xler0915楼主2021/11/28 21:51
RT
#include <iostream>
#include <cctype>
#include <cstdio>
using namespace std;

const int N = 100005;
int l, n, k;
int a[N];

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

int main() {
	cin >> l >> n >> k;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	int left = 0, right = l;
	while (left < right) {
		int mid = (left + right) >> 1;
		if (check(mid))
			right = mid;
		else
			left = mid + 1;
	}
	cout << left << endl;

	return 0;
}

2021/11/28 21:51
加载中...