100但还错了的求解
查看原帖
100但还错了的求解
1050605
zeng_hou_ming楼主2023/12/19 22:23
#include<bits/stdc++.h>
using namespace std;
long long x, y, z,a[50000+100];
long long check(long long f) {
	long long ans = 0, k = 0;
	for (int i = 1; i <= y; i++) {
		if (a[i] - a[k] < f) {
			ans++;
			if (ans > z)return false;
		}
		else k = i;
	}
	return true;
}
int main() {
	cin >> x >> y >> z;
	for (int i = 1; i <= y; i++) 
		cin >> a[i];
	sort(a + 1, a + y + 1);
	long long l = 0, r = x + 1;
	while (l + 1 < r) {
		long long mid = (l + r) / 2;
		if (check(mid))l = mid;
		else r = mid;
	}
	cout << l;
	return 0;
}

但我提交上去,神奇的是发生了 100分还unaccepted 不过确实有个点错了,不知怎么回事

2023/12/19 22:23
加载中...