上面打的不清楚
#include<bits/stdc++.h>
using namespace std;
int main()
{
int
L,m,n,a[50050],i,l,r,mid,num,sum,j;
cin>>L>>n>>m;
for (i=1;i<=n;i++)
scanf("%d",&a[i]);
a[0]=0;
a[n+1]=L;
l=1;
r=L;
while (l<r)
{
sum=0;
mid=(l+r)/2;
num=0;
j=0;
while (j<=n+1)
{
while (a[j]-a[num]<=mid&&j<=n+1)
j++;
if (a[j]-a[num]>mid) sum++;
num=j;
}
if (sum<=n-m) r=mid;
else l=mid+1;
}
cout<<l<<endl;
return 0;
}
by jackywang @ 2018-06-03 19:06:03
再清楚点
```
#include<bits/stdc++.h>
using namespace std;
int main()
{
int L,m,n,a[50050],i,l,r,mid,num,sum,j;
cin>>L>>n>>m;
for (i=1;i<=n;i++)
scanf("%d",&a[i]);
a[0]=0;
a[n+1]=L;
l=1;
r=L;
while (l<r)
{
sum=0;
mid=(l+r)/2;
num=0;
j=0;
while (j<=n+1)
{
while (a[j]-a[num]<=mid&&j<=n+1)
j++;
if (a[j]-a[num]>mid)
sum++;
num=j;
}
if (sum<=n-m) r=mid;
else l=mid+1;
}
cout<<l<<endl;
return 0;
}
```
by yummy @ 2018-07-12 22:13:07