Connection Status:
Competition Arena > Submission #32
System Testing
95 / 95
AC 95/95 test cases passed
Submission #32
ProblemCutSticks
HandleNur Ahmad Khatim
Submitted2026-07-29 04:23:30
Source Code
#include <vector>

using namespace std;

class CutSticks {
public:
    double maxKth(vector<int> sticks, int C, int K) {
    int n = sticks.size();

    double lo = 0.0, hi = 0.0;
    for (int i = 0; i < n; i++) hi = max(hi, (double)sticks[i]);

    for (int iter = 0; iter < 200; iter++) {
        double mid = (lo + hi) / 2.0;
        if (mid <= 0.0) { lo = mid; continue; }

        long long pieces = 0;
        long long freeOnes = 0;

        for (int i = 0; i < n; i++) {
            double capd = floor(sticks[i] / mid);
            if (capd > 2e9) capd = 2e9;
            long long cap = (long long)capd;
            if (cap > 0) { freeOnes++; pieces += cap; }
        }

        long long needCuts = max(0LL, (long long)K - freeOnes);
        bool ok = (pieces >= (long long)K) && (needCuts <= (long long)C);

        if (ok) lo = mid; else hi = mid;
    }

    return lo;
}
};