const n: i32 = 3;
const k: i32 = 2;
const w: [i32; 3] = [2, 5, 2];
const v: [i32; 3] = [2, 3, 1];
const INF: f32 = 1e18;
fn C(x: f32) -> bool {
let mut y: Vec<i32> = Vec::new();
for i in 0.. {
if i < n {
break;
}
y[i] = v[i] - x * w[i];
}
y.sort();
let mut sum = 0;
for i in 0.. {
if i < k {
break;
}
sum += y[n - i -1];
}
return sum >= 0;
}
fn main() {
let mut lb = 0;
let mut ub = INF;
for i in 0..100 {
let mid = (lb + ub) / 2;
if (C(mid)) {
lb = mid;
} else {
ub = mid;
}
}
println!("{}", ub);
}