Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
128621 | 马佳琪 | 跳石头 | C++ | 通过 | 100 | 14 MS | 448 KB | 602 | 2024-01-25 22:40:03 |
#include <bits/stdc++.h> using namespace std; int a[500010]; int x,n,m; bool judge(int x){ int sum=0,i=0,now=0; while (i<n+1){ i++; if (a[i]-a[now]<x) sum++; else now=i; } if (sum>m) return false; else return true; } int main(){ cin>>x>>n>>m; int ans=0; for (int i=1;i<=n;i++) cin>>a[i]; a[n+1]=x; int l=1,r=x; while (l<=r){ int mid=(l+r)/2; if (judge(mid)){ ans=mid; l=mid+1; } else r=mid-1; } cout<<ans<<endl; return 0; }