Accepted
代码
#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=50010;
int len,n,m,a[maxn],ans;
bool check(int x)
{
int cnt=0,sum=0;
for(int i=1;i<=n+1;i++)
{
sum+=a[i]-a[i-1];
if(sum<x)
cnt++;
else sum=0;
}
if(cnt>m)return 0;
return 1;
}
int main()
{
scanf("%d%d%d",&len,&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
a[0]=0;a[n+1]=len;
int l=0,r=len+1,mid;
while(l<=r)
{
mid=(l+r)>>1;
if(check(mid))
{
l=mid+1;
ans=mid;
}
else r=mid-1;
}
printf("%d",ans);
return 0;
}
信息
- 递交者
- 类型
- 递交
- 题目
- P1055 跳石头
- 比赛
- 随机真题赛第四轮(xhy&lfy讲题)
- 题目数据
- 下载
- 语言
- C++
- 递交时间
- 2019-11-13 13:12:29
- 评测时间
- 2019-11-13 13:12:29
- 评测机
- 分数
- 100
- 总耗时
- 59ms
- 峰值内存
- 500.0 KiB