Rust Genomic Range Query
fn genomic_range_query(s: &str, p: &[usize], q: &[usize]) -> Vec<i64> {
    let chars: Vec<char> = s.chars().collect();
    p.iter()
        .zip(q.iter())
        .map(|(&pi, &qi)| {
            let sub = &chars[pi..=qi];
            if sub.contains(&'A') {
                1
            } else if sub.contains(&'C') {
                2
            } else if sub.contains(&'G') {
                3
            } else {
                4
            }
        })
        .collect()
}

This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.