问题标题: 酷町堂:1626 选石子

0
0
已解决
李泽屿
李泽屿
新手启示者
新手启示者

题目链接: 酷町堂:1626

#include<iostream>
#include<algorithm>
using namespace std;
int n,m,a[100005];
bool check(int w){
    int pos=a[1],cnt=0;
    for(int i=2;i<=n;i++){
        if(a[i]-pos>=w){
            cnt++;
            pos=a[i];
        }
    }
    return cnt>=m;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    int l=1,r=n;
    while(l<r){
        int mid=(l+r+1)/2;
        if(check(mid)){
            l=mid;
        }else{
            r=(l+r)/2;
        }
    }
    cout<<l;
    return 0;
}

不会...


0
0
我要回答