求助,为什么能过样例但全WA呢
查看原帖
求助,为什么能过样例但全WA呢
1081621
ShiyoX楼主2024/1/19 21:16
#include<iostream>
using namespace std;
typedef long long ll;
#define scanf_s scanf;
ll L;
int N, K;
int nn[10001000], kk[100010];
bool check(int x)
{
	int sum = 0, num = 0,max=0;
	for (int i = 0; i < L; i++)
	{
		if (nn[i] == 0)sum++;
		else sum = 0;
		if (sum > x)
		{
			nn[i] = 1;
			sum = 0;
			num++;
		}
	}
	return num >= K;
}
int main()
{
	cin >> L >> N >> K;
	ll l=0, r=L,mid;
	for (int i = 0; i < N; i++)
	{
		cin >> kk[i];
	}
	for (int i = 0; i < N; i++)
	{
		nn[kk[i]] = 1;
	}
	
	while (l <= r)
	{
		mid = l + r >> 1;
		if (check(mid))l = mid + 1;
		else r = mid - 1;
	}
	cout << l << endl;
	return 0;
}
2024/1/19 21:16
加载中...