提交时间:2024-01-25 22:40:03
运行 ID: 128621
#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; }