Codeforces ITMO Academy: Pilot Course -- Binary Search Step 2 -- B. Ropes 題解

解題思路

常見錯誤

完整程式碼

#include <bits/stdc++.h>

using namespace std;
 
#define int long long
 
signed main() {
    int n, k;
    cin >> n >> k;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    double l = 0, r = 1e7;
    for (int j = 0; j < 100; j++) {
        double m = (l + r) / 2;
        int cnt = 0;
        for (int i = 0; i < n; i++) {
            cnt += floor((double)(a[i]) / m);
        }
        if (cnt >= k) {
            l = m;
        }
        else {
            r = m;
        }
    }
    cout << setprecision(7) << l << "\n";
}