Quest 4: Teeth of the Wind
- Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
- You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL
Link to participate: https://everybody.codes/


Rust
use num::{BigInt, Integer}; pub fn solve_part_1(input: &str) -> String { let gears: Vec<i64> = input.trim().lines().map(|g| g.parse().unwrap()).collect(); (2025 * gears[0] / gears.last().unwrap()).to_string() } pub fn solve_part_2(input: &str) -> String { let gears: Vec<i64> = input.trim().lines().map(|g| g.parse().unwrap()).collect(); let res = (BigInt::parse_bytes(b"10000000000000", 10).unwrap() * gears.last().unwrap()) .div_ceil(&(BigInt::ZERO + gears[0])); res.to_string() } pub fn solve_part_3(input: &str) -> String { let mut lines = input.trim().lines(); let first_gear = BigInt::parse_bytes(lines.next().unwrap().as_bytes(), 10).unwrap(); let mut nominator: BigInt = first_gear * 100; let mut denominator: BigInt = BigInt::ZERO + 1; for line in lines { let mut split = line.split("|"); denominator *= BigInt::parse_bytes(split.next().unwrap().as_bytes(), 10).unwrap(); match split.next() { Some(size) => { nominator *= BigInt::parse_bytes(size.as_bytes(), 10).unwrap(); } None => { break; } } } (nominator / denominator).to_string() }