不懂!不懂!哇嘎乃!!
查看原帖
不懂!不懂!哇嘎乃!!
486158
Aludy楼主2021/11/4 20:39

来康康呗,大佬

#include<iostream>

using namespace std;

const int M = 5e4 + 10;
int d, m, n;
int a[M], mx = 0;

int main() {
    cin >> d >> n >> m;

    a[0] = 0;
    for (int i = 1;i <= n;i ++) {
        cin >> a[i];
    }a[n + 1] = d;

    int l = 1, r = d, ans;

    while (l <= r) {
        int mid = l + r >> 1, temp = 0, idx = 0;

        for (int i = 0;i <= n + 1;i ++) {
            if (a[i] - a[idx] < mid) temp ++;
            else idx = i;
        }

        if (temp > m) {
            r = mid - 1;
        }
        else {
            ans = mid;
            l = mid + 1;
        }

        cout << l << ' ' << r << ' ' << temp << endl;
    }

    cout << ans << endl;

    return 0;
}   
2021/11/4 20:39
加载中...