Editorial for 串一串脆薯3


記住 在沒有思路時使用題解,不要複製貼上代碼。請尊重題目和題解的作者。
在真正親自解開題目前提交官方題解的代碼是可以封禁的罪行。

作者: a002

僅供參考

#define endl '\n'
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define int long long
#define pii pair<int, int>
#define pb push_back
#define all(x) x.begin(), x.end()
#define mp make_pair
#define F first 
#define S second

using namespace std;

const int p = 1e9+7;

int n, k;

bool f(int R, vector<int> &v) {
    int cnt = 0, cover = -1;
    for(int i = 0;i < n;i++) {
        if(cover < v[i]) {
            cover = v[i]+R;
            cnt++;
        }
    }
    return cnt <= k;
}

signed main() {

    cin >> n >> k;
    vector<int> v(n);
    for(auto &i : v) cin >> i;
    sort(all(v));
    v.resize(unique(all(v))-v.begin());

    int l = 0, r = p, mid;
    while(r>l) {
        mid = (l+r)>>1;
        if(f(mid<<1, v)) r = mid;
        else l = mid+1;
    }

    cout << l;

    return 0;
}

留言

目前沒有評論。