90分求助 ┭┮﹏┭┮
查看原帖
90分求助 ┭┮﹏┭┮
1307967
stone_thousand楼主2024/3/19 15:10

90分WA了第3个点和subtask#1 求大佬帮忙看看哪里有问题

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
int m, n, sum;
ll x, x_0;
const int N = 5e4 + 100;
ll len, D[N];
bool check(int mid)
{
	sum = 0;
	x_0 = 0;
	for (int i = 1; i <= n+1; i++ )
	{
		if (i == n+1)
		{
			if (len - D[i - 1] < mid)
				return true;
			else
				break;
		}
		if (D[i] - D[x_0] < mid)
		{
			sum++;
		}
		else
			x_0 = i;
	}
	return sum > m;
}


int main()
{
	cin >> len >> n >> m;
	for (int i = 1; i <= n; i++)
	{
		cin >> D[i];
	}
	int l = 1, r = len, mid;
	while (l < r)
	{
		mid = (l + r) >> 1;
		if (check(mid))
		{
			r = mid;
		}
		else
			l = mid + 1;
	}
	cout << l-1;
	return 0;
}










2024/3/19 15:10
加载中...