Module b

Module b 

Expand description

§ABC 418 B - You’re a teapot

refs: https://atcoder.jp/contests/abc418/tasks/abc418_b

use proconio::{input, marker::Chars};

fn main() {
    input! {
        s: Chars,
    }

    let pos_of_t = s
        .iter()
        .enumerate()
        .filter(|(_, char)| *char == &'t')
        .map(|(v, _)| v)
        .collect::<Vec<_>>();

    if pos_of_t.len() < 3 {
        println!("0");
    } else {
        let mut ans = 0.0f64;
        let t_count = pos_of_t.len();

        for fi in 0..t_count {
            for li in (fi + 1)..t_count {
                ans = ans.max(calc(fi, li, &pos_of_t));
            }
        }

        println!("{:.10}", ans);
    }
}

fn calc(fi: usize, li: usize, pos: &[usize]) -> f64 {
    let len = pos[li] - pos[fi] + 1;
    let t_count = li - fi + 1;

    (t_count as f64 - 2.0) / (len as f64 - 2.0)
}