diff --git a/rs/time-needed-to-buy-tickets.rs b/rs/time-needed-to-buy-tickets.rs new file mode 100644 index 0000000..f3f2352 --- /dev/null +++ b/rs/time-needed-to-buy-tickets.rs @@ -0,0 +1,16 @@ +use std::cmp; + +impl Solution { + pub fn time_required_to_buy(tickets: Vec, k: i32) -> i32 { + let threshold = tickets[k as usize]; + + let from_left: i32 = (0..=k as usize) + .map(|i| cmp::min(tickets[i], threshold)) + .sum(); + let from_right: i32 = (k as usize + 1..tickets.len()) + .map(|i| cmp::min(tickets[i], threshold - 1)) + .sum(); + + from_left + from_right + } +}