From 81e91b24a974449ee5a7b810c2236a6fee88e254 Mon Sep 17 00:00:00 2001 From: Timo Schneider Date: Thu, 4 Dec 2025 01:54:02 +0100 Subject: [PATCH] added solution to repo --- solution.md | 10 ++++++++++ src/main.rs | 26 +++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 solution.md diff --git a/solution.md b/solution.md new file mode 100644 index 0000000..296bf31 --- /dev/null +++ b/solution.md @@ -0,0 +1,10 @@ +# Advent of code 2025 +```day01:A => 1150 ( 283us) +day01:B => 6738 ( 100us) +day02:A => 31839939622 ( 8230us) +day02:B => 41662374059 ( 64586us) +day03:A => 16812 ( 1506us) +day03:B => 166345822896410 ( 322us) + ---------- + 75267us +``` \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index c260835..032afbd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,22 @@ +use std::fmt::format; use std::time::Instant; use day01::{part01a, part01b}; use day02::{part02a, part02b}; use day03::{part03a, part03b}; +use std::fs::OpenOptions; +use std::io::Write; +use std::io::Result; + fn main() { + let mut file = OpenOptions::new() + .write(true) // Open the file for writing + .create(true) // Create the file if it doesn't exist + .truncate(true) // Clear the file if it already exists + .open("solution.md").expect("Cannot open or create file"); + + file.write_all(b"# Advent of code 2025\n```").expect("Cannot write to file"); + let exercises: Vec<(&str, fn () -> u64)> = vec![ ("day01:A", part01a::solve), ("day01:B", part01b::solve), @@ -16,9 +29,16 @@ fn main() { let start: Instant = Instant::now(); exercises.iter().for_each(|(day, func)| { let day_start: Instant = Instant::now(); - println!("{:7} => {:15} ({:6}us)", day, func(), day_start.elapsed().as_micros()); + let solution = format!("{:7} => {:15} ({:6}us)\n", day, func(), day_start.elapsed().as_micros()); + print!("{}", solution); + file.write(solution.as_bytes()).expect("Cannot write to file"); }); - println!(" ----------"); - println!(" {:7}us", start.elapsed().as_micros()); + let banner = " ----------\n"; + let end_time = format!(" {:7}us\n", start.elapsed().as_micros()); + print!("{}", banner); + file.write(banner.as_bytes()).expect("Cannot write to file"); + println!("{}", end_time); + file.write(end_time.as_bytes()).expect("Cannot write to file"); + file.write(b"```").expect("Cannot write to file"); } \ No newline at end of file