求求了 dalao 这个错哪了
查看原帖
求求了 dalao 这个错哪了
1172582
Gent7c楼主2024/3/5 17:08
#include<iostream>
#include<algorithm>
using namespace std;
const int n = 1e5 + 5;
int N,M, C;
int a[n];
bool check(int mid)
{
	int now = 0;
	int j = 0;
	int cnt = 0;
	for (int i = 0; i < N; i++)
	{
		j++;
		if (a[i] - now > mid || j>C)
		{
			cnt++;
			j = 0;
			now = a[i];
		}
	}
	return cnt <= M;
}
	
int binary_search(int l, int r)
{
	while (l <= r)
	{
		int mid = (l + r) >> 1;
		if (check(mid))
		{
			r = mid-1;
		}
		else
		{
			l = mid + 1;
		}
	}
	return r;
}
int main()
{
	cin >> N >> M >> C;
	for (int i = 0; i < N; i++) cin >> a[i];
	sort(a, a + N);
	cout << binary_search(0, a[N - 1]) << endl;
}
2024/3/5 17:08
加载中...