Uhm… Are two of them in that pot?
Anya Taylor-Joy
Correct, they announced it two months ago: https://www.androidpolice.com/bitwarden-app-about-prettier/
Same, staying with bitwarden for now
Jacha-chacha-chacha-chow!
Sympathy for the devil?
I think it was already allowed in Europe, but now in the US as well
Yeah the scene is great! And it’s amazing too see then all together at NAC at the moment, great vibes! For those interested, big tourney going op at the moment (starts again in 2/3 hours): https://www.twitch.tv/nili_aoe?sr=a
I watch him indeed, among others
Love this game, both playing it and watching it being streamed, there is a great tournament happening at the moment.
FTW. For years I thought it meant “Fuck The What”. Even now that’s the first thing that comes to mind and have a hard time remembering the actual meaning.
!remindme 24h
Fantasy book series by Brandon Sanderson!
Nice username! Stormlight right?
This would be amazing
Thanks for making some time to check my code, really appreciated! the split_whitespace is super useful, for some reason I expected it to just split on single spaces, so I was messing with trim() stuff the whole time :D. Could immediately apply this feedback to the Challenge of today! I’ve now created a general function I can use for these situations every time:
input.split_whitespace()
.map(|m| m.parse().expect("can't parse string to int"))
.collect()
}
Thanks again!
Feedback welcome! Feel like I’m getting the hand of Rust more and more.
use regex::Regex;
pub fn part_1(input: &str) {
let lines: Vec<&str> = input.lines().collect();
let time_data = number_string_to_vec(lines[0]);
let distance_data = number_string_to_vec(lines[1]);
// Zip time and distance into a single iterator
let data_iterator = time_data.iter().zip(distance_data.iter());
let mut total_possible_wins = 1;
for (time, dist_req) in data_iterator {
total_possible_wins *= calc_possible_wins(*time, *dist_req)
}
println!("part possible wins: {:?}", total_possible_wins);
}
pub fn part_2(input: &str) {
let lines: Vec<&str> = input.lines().collect();
let time_data = number_string_to_vec(&lines[0].replace(" ", ""));
let distance_data = number_string_to_vec(&lines[1].replace(" ", ""));
let total_possible_wins = calc_possible_wins(time_data[0], distance_data[0]);
println!("part 2 possible wins: {:?}", total_possible_wins);
}
pub fn calc_possible_wins(time: u64, dist_req: u64) -> u64 {
let mut ways_to_win: u64 = 0;
// Second half is a mirror of the first half, so only calculate first part
for push_time in 1..=time / 2 {
// If a push_time crosses threshold the following ones will too so break loop
if push_time * (time - push_time) > dist_req {
// There are (time+1) options (including 0).
// Subtract twice the minimum required push time, also removing the longest push times
ways_to_win += time + 1 - 2 * push_time;
break;
}
}
ways_to_win
}
fn number_string_to_vec(input: &str) -> Vec {
let regex_number = Regex::new(r"\d+").unwrap();
let numbers: Vec = regex_number
.find_iter(input)
.filter_map(|m| m.as_str().parse().ok())
.collect();
numbers
}
Is your husband my girlfriend?