二分0分求助
查看原帖
二分0分求助
483209
abcddca楼主2023/8/9 15:31
#include <bits/stdc++.h>
using namespace std;
int a, i, j, k, n, h, b, c, g;
int m[5000005];

int main() {
	cin >> a >> b >> c;
	for (i = 1; i <= b; i++) {
		cin >> m[i];
	}
	m[b + 1] = a;
	int ans;
	int l = 1, r = a, mid, now = 0, sum = 0;
	while (l <= r) {
		sum = 0;
		mid = (l + r) / 2 ;
		//	cout << endl << l << " " << r << " " << mid << " ";
		for (int j = 1; j <= b + 1; j++) {
			if (m[j] - m[now] < mid) {
				sum++;
			} else {
				now = j;
			}
		}
		//	cout << sum;
		if (sum < c) {
			ans = mid;
			l = mid ;
		} else {
			r = mid - 1;
		}
	}
	cout << ans;
	return 0;
}
2023/8/9 15:31
加载中...