1 solutions

  • 1
    @ 2025-7-28 11:17:31

    #include<bits/stdc++.h> using namespace std; int a[10005],n,k,ans,l,r=-1,mid; bool pd(int mid){ int sum=1,maxr=a[1]+mid2; for(int i=2;i<=n;i++){ if(a[i]<=maxr)continue; sum++; maxr=a[i]+2mid; } return sum<=k; } int main(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>a[i]; r=max(r,a[i]); } sort(a+1,a+1+n); while(l<=r){ mid=(l+r)/2; if(pd(mid)==1){ r=mid-1;ans=mid; } else l=mid+1; } cout<<ans; return 0; }

    • 1

    Information

    ID
    408
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    6
    Tags
    (None)
    # Submissions
    25
    Accepted
    10
    Uploaded By