#include <bits/stdc++.h>
const int maxn = 500010;
using namespace std;
int a[maxn];
int l,n,m;
bool check(int val)
{
int cnt = 0,pre = 0;
for(int i = 1;i < n + 1;i++)
{
if(a[i] - a[pre] < val)cnt++;
else pre = i;
if(cnt > m)return false;
}
return cnt <= m;
}
int main()
{
int ans;
scanf("%d%d%d",&l,&n,&m);
for(int i = 1;i <= n;i++)
scanf("%d",&a[i]);
a[n + 1] = l;
int left = 0,right = l;
while(left <= right)
{
int mid = (left + right) / 2;
if(check(mid))left = mid + 1,ans = mid;
else right = mid - 1;
}
cout<<ans<<endl;
return 0;
}
转载请注明原文地址:https://blackberry.8miu.com/read-43802.html