菜狗求助,90分,第2个点TEL

P2678 [NOIP2015 提高组] 跳石头

#include<bits/stdc++.h> using namespace std; long long l2,n,m,a[50002]; long long check(long long x){ long long o=0,ans=0; for(int i=1;i<=n+1;i++){ if(a[i]-o<x){ ans++; } else{ o=a[i]; } } return ans<=m; } long long sum; int main(){ cin>>l2>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } a[n+1]=l2; long long l=1,r=l2; while(l<=r){ long long mid=(l+r)/2; if(check(mid)==1){ l=mid+1; sum=mid; }else{ r=mid-1; } } cout<<sum; return 0; } ```
by Wzl111 @ 2024-02-25 20:36:54


|