100分求调
Subtask #1怎么也过不了
#include <iostream>
using namespace std;
long long n, m, k, l, r, mid, ans;
long long a[50005];
bool check(long long x)
{
long long last = 0;
long long sum = 0;
for (long long i = 1; i <= n; i++)
{
if (a[i] - last < x)
{
sum++;
}
else
{
last = a[i];
}
if (sum > k)
return false;
}
return true;
}
int main()
{
cin >> m >> n >> k;
for (long long i = 1; i <= n; i++)
cin >> a[i];
a[n + 1] = m;
l=1,r=m;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid))
{
ans=mid;
l=mid+1;
}
else
{
r=mid-1;
}
}
cout << ans << endl;
return 0;
}