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;
}