Accepted
代码
信息
- 递交者
- 类型
- 递交
- 题目
- P1055 跳石头
- 比赛
- 随机真题赛第四轮(xhy&lfy讲题)
- 题目数据
- 下载
- 语言
- C++
- 递交时间
- 5 年前
- 评测时间
- 5 年前
- 评测机
- 分数
- 100
- 总耗时
- 48ms
- 峰值内存
- 500.0 KiB
#include<bits/stdc++.h>
using namespace std;
const int maxl=1e9+10,maxn=5e4+10;
int ll,m,n,a[maxn];
inline int read(){
int x=0,f=1;
char c=getchar();
while(c>'9'||c<'0'){
if(c=='-')f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=((x<<1)+(x<<3))+c-'0';
c=getchar();
}
return x*f;
}
inline bool check(int x){
int now=0,sum=0;
for(int i=1;i<=n+1;i++){
if(a[i]-a[now]<x) sum++;
else now=i;
}
return sum<=m;
}
inline void Init(){
ll=read(),n=read(),m=read();
for(int i=1;i<=n;i++)a[i]=read();
a[n+1]=ll;
a[0]=0;
}
inline void Work(){
int l=1,r=ll;
while(l<r){
int mid=(l+r+1)>>1;
if(check(mid))l=mid;
else r=mid-1;
}
cout<<l<<endl;
}
int main(){
Init();
Work();
return 0;
}