Skip to main content

rational_binary_search

Function rational_binary_search 

Source
pub fn rational_binary_search<T>(
    f: impl FnMut(&URational<T>) -> bool,
    n: T,
) -> SbtNode<T>
where T: Unsigned,
Examples found in repository?
crates/library_checker/src/number_theory/rational_approximation.rs (line 11)
5pub fn rational_approximation(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(t);
8    for _ in 0..t {
9        sc!(n: u64, x: u64, y: u64);
10        let x = URational::new_unchecked(x, y);
11        let sbt = rational_binary_search::<u64>(|&a| a <= x, n);
12        if matches!(sbt.l.cmp(&x), std::cmp::Ordering::Equal) {
13            pp!(sbt.l.num, sbt.l.den, sbt.l.num, sbt.l.den);
14        } else {
15            pp!(sbt.l.num, sbt.l.den, sbt.r.num, sbt.r.den);
16        }
17    }
18}