提交时间:2025-07-24 10:01:19
运行 ID: 335823
//跳石头 #include<bits/stdc++.h> using namespace std; const int N=50100; int a[N]; int n, m, l; bool check(int mid){ int c=0; //跳跃次数 int p=0; //人站的位置 for(int i=1; i<=n; i++){ if(a[i]-p<mid) c++; else p=a[i]; } return c<=m; } int main(){ cin>>l>>n>>m; for(int i=1; i<=n; i++){ cin>>a[i]; } int left =1,right=l,mid; while(left<=right){ mid=(left+right)/2; if(check(mid)) left=mid+1; else right=mid-1; } cout<<left-1; return 0; }