System Testing
95 / 95
AC
95/95 test cases passed
Submission #32
| Problem | CutSticks |
|---|---|
| Handle | Nur Ahmad Khatim |
| Submitted | 2026-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;
}
};