蒟蒻70分,#2 4 7 WA,求dalao帮忙
查看原帖
蒟蒻70分,#2 4 7 WA,求dalao帮忙
235561
samzhangjy楼主2021/7/12 12:30

真心不知道咋改了……#2的数据点下下来运行结果4459,正确答案4460,不知道为啥……

代码(不好看请见谅):

#include <iostream>
using namespace std;
const int MAXN = 50010;

long long rocks[MAXN];
long long d, n, m;

bool check(int x) {
	int cur = 0, nxt = 1, cnt = 0;
	while (nxt < n + 1) {
		if (rocks[nxt] - rocks[cur] < x) cnt++;
		else cur = nxt;
		nxt++;
	}
	return cnt <= m;
}

int binary_search(int l, int r) {
	int ans;
	while (l <= r) {
		long long mid = (l + r) >> 1;
		if (check(mid)) l = mid + 1, ans = mid;
		else r = mid - 1;
	}
	return ans;
}

int main() {
	cin >> d >> n >> m;
	for (int i = 0; i < n; i++) cin >> rocks[i];
	rocks[n + 1] = d;
	cout << binary_search(1, d) << endl;
	return 0;
}
2021/7/12 12:30
加载中...