先后30pts,40pts,60pts,70pts,几乎每一个点都对过……
70pts代码:
#include <bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
typedef int Int;
using namespace std;
int l,n,k,road[100010];
void Input()
{
scanf("%d%d%d",&l,&n,&k);
for(int i=0;i<n;i++)
{
scanf("%d",&road[i]);
}
return;
}
bool isok(int t)
{
int cur=0,ink=1,ed=k;
while(ink<=n)
{
if(road[ink]-cur<t){cur=road[ink];ink++;}
else{
if(ed<=0){return false;}
ed--;cur+=t;
}
}
return true;
}
void Work()
{
int le=0,ri=l,mi;
while(ri>=le)
{
mi=le+(ri-le)/2;
if(isok(mi))ri=mi-1;
else le=mi+1;
}
cout<<mi;
}
int main()
{
Input();
Work();
return 0;
}