From a9652699e602a2656aaa295d12b4530b42432c5f Mon Sep 17 00:00:00 2001 From: mhsn Date: Tue, 2 Dec 2025 21:34:06 +0000 Subject: 25-01 rust both --- 2025/01/rust/src/main.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 2025/01/rust/src/main.rs (limited to '2025/01/rust/src') diff --git a/2025/01/rust/src/main.rs b/2025/01/rust/src/main.rs new file mode 100644 index 0000000..72b718b --- /dev/null +++ b/2025/01/rust/src/main.rs @@ -0,0 +1,25 @@ +use num::BigUint; +use std::io; + +fn main() { + let mut curr = 50; + let mut silver: u64 = 0; + let mut gold: BigUint = BigUint::ZERO; + io::stdin() + .lines() + .flatten() + .map(|line| match line.split_at(1) { + ("L", n) => -n.parse::().unwrap(), + (_, n) => n.parse::().unwrap(), + }) + .for_each(|n| { + let prev = curr; + curr += n; + gold += (curr.abs() / 100) as u64 + (prev != 0 && curr <= 0) as u64; + curr = curr.rem_euclid(100); + silver += (curr == 0) as u64; + }); + + println!("silver: {silver}"); + println!("gold: {gold}"); +} -- cgit v1.2.3